Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

مقدمه

...

چنانچه برنامه های همکار بخواهند برای انتقال اطلاعات از برنامه خود به سایت بهره بگیرند باید دو پیش نیاز را مد نظر بگیرند تا با استفاده از برنامه ای که برای انتقال اطلاعات نوشته شده این کار انجام گردد .==

مرحله اول : ایجاد ویوها

...

اولین  اولین قدم ایجاد ویوهای مختلف از برنامه مورد نظر برای انتقال به سایت می باشد
{{نکته}} هر ویو دارای فیلدهای الزامی است که باید حتما مقدار دهی شوند سایر فیلدها چنانچه معادلی در برنامه مورد نظر نداشت بایستی بامقادیر نال یا صفر باید پر شوند===

ویوهای ضروری

...

...

ویو برندها iorder_Brands

...

Code Block
BrandERPCode -- کد برند ، varchar ، Not Null
,Coding_Name -- نام برند ، varchar ، Not Null

...


* '''ویو کالاها iorder_Products'''

...

Code Block
ERPCode -- کد کالا ، varchar ، Not Null

...


,BrandERPCode -- کد برند کالا ، varchar ، Not Null ،( مرتبط با کد ویوی برندها )

...

 
,K_Name -- نام کالا ، nvarchar ، Not Null

...


,K_price_sail -- قیمت فروش ،money،Not Null

...


,K_price_sail2 -- قیمت فروش 2 ،money ،پیش فرض 

...


,K_price_sail3 -- قیمت فروش 3 ،money ،پیش فرض 

...


,K_price_sail4 -- قیمت فروش 4 ،money ،پیش فرض 

...


,EndUserPrice --قیمت فروش مصرف کننده ،money ،پیش فرض 

...


--- فیلدهای غیرالزامی که باید در ویو وجود داشته باشد و مقداردهی با نال یا صفر شود ---

...


TagERPCode -- کد برچسب کالا،varchar ،Null،،

...


,TagName --نام برچسب،varchar ،Null،،

...


,PCSPerBox -- تعداد در کارتن،int،پیش فرض 0 ،،

...


,PCsPerPack --تعداد در پک،int،پیش فرض 0 ،،

...


,JustSalePack -- پک فروش ،int،پیش فرض 0 ،،

...


,ProductStatus --وضعیت محصول،int،پیش فرض 0 ،،

...


,ProductID -- کد محصول،int،پیش فرض 0 ،،

...


,PcompanyID --کد شرکت،int،پیش فرض 0 ،،

...


,TimeStmpChanges -- زمان تغییر،int،پیش فرض 0 ،،

...


,MaxOrder --حداکثر سفارش ,int , not null پیشفرض 0

...


,MinOrder --حداقل سفارش , int , not null پیشفرض 0

...


نکته 0 در فیلدهای MaxOrder و MinOrder بدین معنی است که محدودیتی در حداقل و حداکثر فروش نمی باشد

...


,TaxERPCode --رفرنس مالیات (از ویوی iorder_TaxGroups ) ,

...


null

...


*''' ویو بارکد کالا iorder_barcode '''

...

Code Block
ERPCode -- کد کالا ،varchar،ضروری،مرتبط با ویو کالاها،

...


, BarcodeName -- عنوان بارکد ،Nvarchar ،Not Null،

...


--- فیلدهای غیرالزامی که باید در ویو وجود داشته باشد و مقداردهی با نال یا صفر شود ---

...


,KBarCode -- بارکد کالا،varchar ،پیش فرض ''،،

...


,ProductERPCode -- کد محصول ،varchar،پیش فرض ''، این کد می تواند با کد کالا یکی باشد یا فرق داشته باشد

...


,KArtNo -- کد فرعی کالا،varchar،پیش فرض ''،،،

...




* ''' ویو مشتریان iorder_customer '''

...

Code Block
CustomerErpCode -- کد مشتری ، varchar ،Not Null،،

...


, T_Name -- نام مشتری ،nvarchar،Not Null،،

...


, partnumber -- کد بخش ،int،Not Null، پیش فرض 1

...

 
--- فیلدهای غیرالزامی که باید در ویو وجود داشته باشد و مقداردهی با نال یا صفر شود ---

...


,DepID -- کد شعبه ،int،پیش فرض 0 ،

...


,T_Tel -- شماره تلفن،varchar،پیش فرض ''،

...


,MobileNum -- شماره همراه،varchar،پیش فرض ''،

...


,T_Address -- آدرس،varchar،پیش فرض ''،

...


,T_Credit -- اعتبار اولیه،money،پیش فرض 0،،

...


,CreditMondeh -- مانده اعتبار،money،،

...


,HasReturnChk -- دارای چک برگشتی،،،

...


,ThMandeh -- مانده حساب مشتری،money،،،

...


,RaasDate -- تاریخ راس،varchar،پیش فرض ''،

...


,CustomerPriceListERPCode -- کد لیست قیمت مشتری،int،پیش فرض Null،

...


,PayLength -- نوع تسویه مشتری،int،پیش فرض 

...


,LastOrderDate -- آخرین تاریخ سفارش،پیش فرض ''،،

...


,Rfid -- آراف آی دی،varchar،پیش فرض ''،

...


,EldestDue -- آخرین تاریخ تسویه،varchar،پیش فرض ''،

...

 
FirstName --نام مشتری,varchar,null

...


LastName --نام خانوادگی ,varchar,null

...


MSTID --برچسب مشتری varchar,null

...


AccountStatus -- وضعیت فعال یا غیر فعال بودن حساب ,smallint ,پیشفرض 1

...


iOrder_idCustomer--شناسه مشتری در سایت bigint,null,پیشفرض

...

 NULL



* ''' ویو ویزیتور iorder_visitor '''

...

<source lang="sql">

...

Code Block
VisitorERPCode -- کد ویزیتور ،int،Not Null،،

...


,VisitorPass -- پسورد ویزیتور ، varchar ، Not Null، پیش فرض کد ویزیتور

...


,VisitorName -- نام ویزیتوز ،nvarchar،Not Null،

...


--- فیلدهای غیرالزامی که باید در ویو وجود داشته باشد و مقداردهی با نال یا صفر شود ---

...


Depid -- کد شعبه،int،پیش فرض 0 ،،

...


,ts -- زمان تغییرات،int،پیش فرض

...

 0،،



* ''' ویو موجودی کالا iorder_stock '''<source lang="sql">


Code Block
BarcodeERPCode -- کد بارکد ،varchar،Not Null،

...


,Mojodi -- موجودی ،float،Not Null،

...


--- فیلدهای غیرالزامی که باید در ویو وجود داشته باشد و مقداردهی با نال یا صفر شود ---

...


ItemInReq -- موجودی کالای در جریان ثبت ،int،پیش فرض 

...


,warehouseErpCode -- کد انبار ،int،پیش فرض 0 ،


</source>* '''ویو واحد iorder_units''' <br />
<source lang="sql">
UnitERPCode


Code Block
UnitERPCode --کد واحد کالا varchar not null

...

 
UnitName varchar --عنوان varchar(300) null 


</source>* '''ویو واحدو کالا iorder_UnitProducts'''<br />
نکته : این ویو ارتباط بین کالا و واحدهای کالا را مشخص می کند.
<source lang="sql">
UnitERPCode

Code Block
UnitERPCode --کد واحد varchar , not null

...

 
ProductERPCode -- کد کالا varchar , not null

...


CountInPackage --تعداد در واحد,int , not null

...


isDefault --واحد پیشفرض ,bit,not null


نکته : این ویو ارتباط بین کالا و واحدهای کالا را مشخص می کند. null</br>
<source>

* ویو لیست قیمت iorder_PriceList<source lang="sql">


Code Block
ERPCode -- کد ،varchar،not Null ،

...


,pricelistname -- نام لیست قیمت ،Nvarchar،،،

...


--- فیلدهای غیرالزامی که باید در ویو وجود داشته باشد و مقداردهی با نال یا صفر شود ---

...


,isDefault -- پیش فرض ،not null،پیش فرض 

...


,isConsumerPrice -- قیمت مصرف کننده می باشد ؟ ،not null ،پیش فرض 0 ،،

</source>


* ویو لیست قیمت کالاها iorder_PriceListProduct<source lang="sql">

Code Block
PricelistERPCode -- کد لیست قیمت ،int،not null،

...


,ProductERPCode -- کد محصول ،varchar،not null،،

...


,pricevalue -- قیمت کالا،money،پیش فرض 

...


,UnitERPCode --واحد کالا،int،NOT NULL

...


=== ویوهای غیر ضروری===


* ویو برچسب ها iorder_tags<source lang="sql">

Code Block
TagERPCode -- کد برچسب ، varchar

...


,BrandERPCode -- کد برند کالا ، varchar

...


,Coding_Name -- نام برچسب ، nvarchar


</source>* ویو برچسب کالاها iorder_producttag<source lang="sql">

Code Block
TagERPCode -- کد برچسب ،varchar،

...


,ProductERPCode -- کد محصول ،varchar،

...

* ویو نوع تسویه مشتریان iorder_payment<source lang="sql">

Code Block
PaymentERPCode -- کد نوع تسویه مشتری،int،پیش فرض null،،

...


,PaymentName -- نام تسویه،Nvarchar،پیش فرض null،،

...


* ویو انبار iorder_anbar<source lang="sql">

Code Block
ErpCode -- کد انبار ،int،پیش فرض 0

...


,anbarName -- نام انبار ، nvarchar

</source>


* ویو مسیر ویزیت iorder_visitpath<source lang="sql">


Code Block
PathCode --کد مسیر ،int،پیش فرض 0 ،،

...


,THAccCode -- کد مشتری،int،not null،،

...


,visitor_code -- کد ویزیتور،int،not null ،،

...


--- فیلدهای غیرالزامی که باید در ویو وجود داشته باشد و مقداردهی با نال یا صفر شود ---

...


,VisitOrder -- ترتیب ویزیتور،int،پیش فرض 0،،

...


* ویو برچسب های ویزیتور iorder_visitortag<source lang="sql">

Code Block
linename -- نام لاین ،nvarchar،پیش فرض null،،

...


,VisitorERPCode -- کد ویزیتور،int،پیش فرض null،


</source>* ویو انواع مالیات iorder_TaxGroups<source lang="sql">

Code Block
TaxERPCode-- کد نوع مالیات،varchar،not null،،

...


,TaxDesc-- عنوان،varchar،not null

...


,TaxValue -- مقدار ,not null,int


</source>
==مرحله دوم : ایجاد اس پی ==
=== اس پی ایجاد فاکتور ===
هنگامی که کاربر با تبلت سفارش از مشتری می گیرد اطلاعات سفارش در دو جدول ذخیره می شوند که پس از انتقال از تبلت به برنامه ، فاکتور یا سفارش مشتری ایجاد می شود.
در این اس پی باید اطلاعات از جداول هدر و دیتیل سفارشات دریافت گردد و سپس بوسیله روالی در جداول مربوطه به سیستم حسابداری ثبت گردد.برای پیاده سازی این کار میتوان ابتدا یک کرسر تعریف کرد واطلاعات هدر ها را دریافت نممود سپس با دریافت هر رکورد در کرسر به ثبت دیتیل های آن سفارش پرداخت .
نکته مهم اینکه در دستوری که اطلاعات هدر را دریافت میکند باید دارای شرط زیر باشد:<source lang="Sql">

Code Block
select * from T_TblSFATransferOrderHeaders where IsInserted=

...

0 

پس از اینکه یک رکورد توسط کرسر دریافت شد به ثبت دیتیل های آن سطر از هدر ها می پردازیم و در شرط دریافت دیتیل ها نیز شرط زیر را چک میکنیم که رکورد های تکراری ثبت نکند.<source lang="Sql">

Code Block
select * from T_TblSFATransferOrderDetails where IsInserted=0

...

 

نکته مهم : درصورتی که در سیستم حسابداری موجودی ها در زمان ثبت سفارش تغییر می کند باید در این اس پی این روال نیز انجام گردد.
بعد از ذخیره اطلاعات هدر و دیتیل در سیستم حسابداری باید دستور زیر اجرا گردد تا از ورود اطلاعات تکراری جلوگیری شود:<source lang="Sql">

Code Block
update T_TblSFATransferOrderHeaders

...

 
set MISPInvCode = @MisPInv_Code ,IsInserted =1

...

 
Where idorder = @idorder

...


update T_TblSFATransferOrderDetails

...


set MISPInvCode = @MisPInv_Code ,IsInserted =1

...

 
Where idorder = @idorder--@idorder شماره سفارش است که بعوان پارمتر از کرسر جدول هدر دریافت میگردد

...


--@MisPInv_Code کدی سفارشی است که در سیستم حسابداری ثبت شده است

...


'''ساختار جدول سربرگ سفارش T_TblSFATransferOrderHeaders'''

==== کد اس کیو ال جدول هدر ====<source lang="Sql">

Code Block
CREATE TABLE [dbo].[T_TblSFATransferOrderHeaders](

...


[ID] [int] IDENTITY(1,1) NOT NULL,

...


[idOrder] [nvarchar](50) NULL,

...


[idStatus] [nvarchar](50) NULL,

...


[idCompany] [nvarchar](50) NULL,

...


[idCustomer] [nvarchar](50) NULL,

...


[idAgent] [nvarchar](50) NULL,

...


[OrderID] [nvarchar](50) NULL,

...


[ItemCount] [nvarchar](50) NULL,

...


[StartTime] [nvarchar](50) NULL,

...


[EndTime] [nvarchar](50) NULL,

...


[DueKind] [nvarchar](50) NULL,

...


[Content] [nvarchar](100) NULL,

...


[LatitudePoint] [nvarchar](50) NULL,

...


[LongitudePoint] [nvarchar](50) NULL,

...


[FactorType] [nvarchar](50) NULL,

...


[Emergency] [nvarchar](50) NULL,

...


[CustomerErpCode] [nvarchar](50) NULL,

...


[ERPVisitorID] [nvarchar](50) NULL,

...


[IsInserted] [bit] NULL,

...


[AnbarErpCode] [int] NULL,

...


[MisPInvCode] [nvarchar](50) NULL,

...


[TimeStamp] [nvarchar](50) NULL,

...


[DateInsert] [datetime] NULL,

...


[TS] [timestamp] NOT NULL,

...


CONSTRAINT [PK_T_TblSFATransferOrderHeaders] PRIMARY KEY CLUSTERED

...

 
(

...


[ID] ASC

...


)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

...


) ON [PRIMARY]

...



GO

...



ALTER TABLE [dbo].[T_TblSFATransferOrderHeaders] ADD DEFAULT ((0)) FOR [IsInserted]

...


GO

...



ALTER TABLE [dbo].[T_TblSFATransferOrderHeaders] ADD DEFAULT (getdate()) FOR [DateInsert]

...


GO


</source>'''ساختار جدول اقلام سفارش T_TblSFATransferOrderDetails'''
<big>متن بزرگ<big>==== کد اس کیو ال جدول دیتیل ====<source lang="Sql">


Code Block
CREATE TABLE [dbo].[T_TblSFATransferOrderDetails](

...


[ID] [int] IDENTITY(1,1) NOT NULL,

...


[idOrderDetail] [nvarchar](50) NULL,

...


[HeaderID] [int] NULL,

...


[idOrder] [int] NULL,

...


[idProduct] [nvarchar](50) NULL,

...


[ProductCount] [nvarchar](50) NULL,

...


[ProductCountConfirm] [nvarchar](50) NULL,

...


[ProductDescription] [nvarchar](50) NULL,

...


[ProductERPCode] [nvarchar](50) NULL,

...


[ProductID] [nvarchar](50) NULL,

...


[PCmpanyID] [nvarchar](50) NULL,

...


[PBarcodeID] [nvarchar](50) NULL,

...


[IsInserted] [bit] NULL,

...


[MisPInvCode] [nvarchar](50) NULL,

...


[TS] [timestamp] NOT NULL,

...


CONSTRAINT [PK_T_TblSFATransferOrderDetails] PRIMARY KEY CLUSTERED

...

 
(

...


[ID] ASC

...


)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

...


) ON [PRIMARY]

...



GO

...



ALTER TABLE [dbo].[T_TblSFATransferOrderDetails] ADD DEFAULT ((0)) FOR [IsInserted]

...


GO

...

با استفاده از اطلاعات مربوط به این دو جدول می توان اقدام به ثبت فاکتور در برنامه موردنظر کرد</br>

نمونه کد اس پی ذخیره سفارشات <source lang="sql">


Code Block
Create PROCEDURE [dbo].[PTC_SFA_SaveOrder]

...

 
AS

...


declare @idorder bigint

...


declare @idCustomer varchar(5)

...


declare @starttime smalldatetime

...


declare @ErpVisitorID VARCHAR(5)

...


declare @Id bigint

...


declare @TmpId bigint

...


declare @AutoIdH bigint

...



update T_TblSFATransferOrderHeaders set IsInserted = 0 where IsInserted= 1 and isnull(MisPInvCode,'') =''

...



DECLARE InsertOrderHa_cursor CURSOR FOR

...


SELECT idOrder , CustomerErpCode , StartTime,ERPVisitorID FROM T_TblSFATransferOrderHeaders

...


WHERE isinserted =0

...



OPEN InsertOrderHa_cursor

...



FETCH NEXT FROM InsertOrderHa_cursor

...


into @idorder,@idCustomer,@starttime,@ErpVisitorID

...



WHILE @@FETCH_STATUS = 0

...


BEGIN

...



insert into tblHOrder(PdaAutoId,CustomerCode,PdaRegDate,VisitorCode,KindFlag)

...


values (@idorder,@idCustomer,@starttime,@ErpVisitorID,'0')

...



set @TmpId=(select PdaAutoId from tblHOrder where PdaAutoId=@idorder)

...


if (@TmpId <> 0 )

...


begin

...


set @AutoIdH =@@IDENTITY

...



insert into tblDOrder (AutoId,StockCode,Qty,Price)

...


(select @AutoIdH,ProductERPCode,ProductCount, 0 from T_TblSFATransferOrderDetails

...


where idOrder=@idorder)

...


end

...

 
update A set MISPInvCode = @AutoIdH ,IsInserted =1

...


from T_TblSFATransferOrderDetails A

...


WHERE idOrder=@idOrder

...

 

Update [T_TblSFATransferOrderHeaders] set MisPInvCode= @AutoIdH , IsInserted = 1

...

 
where idOrder=@idOrder

...





FETCH NEXT FROM InsertOrderHa_cursor

...


into @idorder,@idCustomer,@starttime,@ErpVisitorID

...


END

...



CLOSE InsertOrderHa_cursor

...


DEALLOCATE InsertOrderHa_cursor


</source>=== اس پی ایجاد مشتری جدید ===
'''ساختار جدول مشتری T_TblSFATransferCustomers'''

==== کد اس کیو ال جدول مشتری ====<source lang="Sql">


Code Block
CREATE TABLE [dbo].[T_TblSFATransferCustomers](

...


[ID] [int] IDENTITY(1,1) NOT NULL,

...


[PaymentERPCode] [int] NULL,

...


[idCustomer] [int] NULL,

...


[CustomerName] [nvarchar](250) NULL,

...


[FirstName] [nvarchar](250) NULL,

...


[LastName] [nvarchar](250) NULL,

...


[idUser] [int] NULL,

...

 
[idPayment] [int] NULL,

...

 
[idCompany] [int] NULL,

...


[LatitudePoint] [nvarchar](250) NULL,

...


[LongitudePoint] [nvarchar](250) NULL,

...


[LastOrderDate] [nvarchar](250) NULL,

...

 
[VisitPeriod] [nvarchar](250) NULL,

...

 
[LastVisit] [nvarchar](250) NULL,

...

 
[Credit] [nvarchar](250) NULL,

...

 
[RemainCredit] [nvarchar](250) NULL,

...


[Balance] [nvarchar](250) NULL,

...

 
[RFID] [nvarchar](250) NULL,

...

 
[ReturnCheck] [nvarchar](250) NULL,

...


[AccountStatus] [nvarchar](250) NULL,

...


[LiquidationDate] [nvarchar](250) NULL,

...

 
[EldestDue] [nvarchar](250) NULL,

...

 
[MaturityDate] [nvarchar](250) NULL,

...


[PriceKind] [int] NULL,

...

 
[isDefault] [int] NULL,

...


[TimeStamp] [nvarchar](250) NULL,

...


[isDeleted] [int] NULL,

...

 
[Address] [nvarchar](250) NULL,

...


[PhoneNumber] [nvarchar](250) NULL,

...


[MobileNumber] [nvarchar](250) NULL,

...


[PaymentType] [nvarchar](250) NULL,

...

 
[CustomerErpCode] [nvarchar](250) NULL,

...


[StoreType] [nvarchar](250) NULL,

...


[City] [nvarchar](250) NULL,

...

 
[Region] [nvarchar](250) NULL,

...


[idUserCreator] [int] NULL,

...


[VisitorERPCode] [int] NULL,

...


[IsInserted] [bit] NULL,

...


[depid] [int] NULL) ON [PRIMARY]


</source>
با استفاده از اطلاعات مربوط به این جدول می توان اقدام به ثبت مشتری جدید از تبلت در برنامه موردنظر کرد
پس از ثبت مشتری در تبلت و بروز رسانی باید در سیستم حسابداری مقصد که قرار است اطلاعات مشتری در آن ثبت شود اس پی با نام زیر ایجاد شود که اطلاعات مربوط به مشتریان جدید را از جدول فوق دریافت کند و سپس آنها را در سیستم حسابداری ذخیره کند.

'''ساختار اس پی PTC_SFA_SaveCustomer'''
<br>

==== اس پی ثبت مشتری مشتری ====
در این اس پی باید اطلاعات از جدول T_TblSFATransferCustomers دریافت گردد و برای دریافت اطلاعات می توان بر روی جدول T_TblSFATransferCustomers کرسر تعریف گردد و سپس اطلاعات در جدول مقصد مشتریان ثبت گردد
نکته مهم : در کرسر تعریف شده باید شرط زیر قرار گیرد تا در هر زمان فقط مشتریانی ثبت شوند که تاحالا ثبت نشده باشند
<source lang="Sql">SELECT * from T_TblSFATransferCustomers where isinserted = 0
</source>
نکته مهم : پس از ثبت مشتری در سیستم حسابداری باید کد مربوط به مشتری که در سیستم حسابداری ثبت شده است را بعنوان کد مشتری در جدول T_TblSFATransferCustomers قرار دهیم ، بعبارتی بعد از درج باید این کار را بکنیم :<source lang="Sql">
update

Code Block
SELECT * from T_TblSFATransferCustomers where isinserted = 0 


Code Block
update T_TblSFATransferCustomers set IsInserted=1 ,CustomerERPCode=کد دریافتی از سیسیتم حسابداری

...


where ID=@idcustomer پارامتری است که در قسمت سلکت از جدول مشتریان دریافت می گردد


</source>
=== اس پی تغییر وضعیت سفارش ===
درصورتی که در سیستم حسابداری مورد نظر سفارش دارای وضعیت های مختلفی می باشد می توانید این اس پی را در سیستم حسابدرای ایجاد کرده تا پس از تغییر وضعیت در سیستم حسابداری در سایت نیز این تغییرات قابل مشاهده باشد.وضعیت ها در برنامه آی ار در ابتدا در جدول tblsfaorderposiion قرار میگیرند و در زمان دریافت سفارشات اس پی بصورت خودکار فراخوانی می گردد و اطلاعات این جدول از روی جدول مربوط به وضعیت های سفارشات در سیستم حسابدرای آپدیت می شود.

'''ساختار جدولtblsfaorderposiion '''<source lang="Sql">


Code Block
CREATE TABLE [dbo].[tblsfaorderposiion](

...


[ID] [int] IDENTITY(1,1) NOT NULL,

...


[idOrder] [int] NULL] -- کد سفارش درسایت

...


[ErpCode] [nvarchar](100) NULL, -- کد ثبت شده سفارش درسیستم حسابداری

...


[ErpStatus] [nvarchar](500) NULL, --وضعیت

...


[ts] [timestamp] NOT NULL --زمان تغییرات)

...

 
ON [PRIMARY]

...


لازم به ذکر است که اطلاعات این جدول بصورت خودکار در زمان درج سفارشات ایجاد می شود.

...

در این اس پی باید جدول فوق با جدول مربوط به وضعیت سفارشات جوین بخورد و وضعیت موجود آپدیت شود مانند مثال زیر :<source lang="Sql">

Code Block
update tblsfaorderposiion

...

 
set erpstatus = C.positiondesc from tblsfaorderposiion A

...

 
inner join tblOrderStatus on A.erpcode = B.erpcode

...


where isnull(erpstatus,'') <> C.erpstatus

...





</source>

== مرحله سوم: پشتیبانی ==
در این مرحله اغلب مشکلاتی که بری مشتریان بوجود می آید شناسایی شده و به رفع موارد آنها می پردازیم.
روال کار بدین صورت است که برای هر مورد از مشکلات باید یک ویو ایجاد شود که شامل تمام اطلاعات آن مشکل باشد . ودر نهایت یک اس پی باید ایجاد شود که خروجی حاصله از بررسی این ویوها را به نمایش بگذارد.

...


*'''ویوی پشتیبانی انبار - iorder_support_Anbar '''
این ویو دقیقا مشابه ویوی انبارها می باشد با این تفات که تعداد فیلدهای آن کمتر است و دراین ویو دیگر محدودیتی برای انبارها نداریم.<source lang="Sql">



Code Block
CREATE view iorder_support_Anbar as

...


select A_name as Name , a_code ERPCode

...


From

...

 tblanbar


*'''ویوی پشتیبانی مشتریان- iorder_support_Customer'''
این ویو دقیقا مشابه ویوی مشتریان می باشد با این تفات که تعداد فیلدهای آن کمتر است و دراین ویو دیگر محدودیتی برای مشتریان نداریم.<source lang="Sql">
CREATE view



Code Block

CREATE view iorder_support_Customer as

...


SELECT ERPCode, as Name

...


FROM

...

 tblCustomer


*'''ویوی پشتیبانی محصولات- iorder_support_product'''
این ویو دقیقا مشابه ویوی کالامی باشد با این تفات که تعداد فیلدهای آن کمتر است و دراین ویو دیگر محدودیتی برای کالا نداریم.<source lang="Sql">



Code Block
CREATE view iorder_support_product as

...

 
SELECT K_Code as ERPCode,K_Name as Name

...

 
from tblKala

...


</source>

...



*'''ویوی پشتیبانی برچسب ها- iorder_support_tag'''

...


این ویو دقیقا مشابه ویوی برچسب ها می باشد با این تفات که تعداد فیلدهای آن کمتر است و دراین ویو دیگر محدودیتی برای برچسب ها نداریم.

...


<source lang="Sql">

...


CREATE view iorder_support_tag as

...


select T_Code as ERPCode,T_Name as Name

...

 
from tblTags

...


*'''ویوی پشتیبانی ویزیتور- iorder_support_visitor'''
این ویو دقیقا مشابه ویوی ویزیتورها می باشد با این تفات که تعداد فیلدهای آن کمتر است و دراین ویو دیگر محدودیتی برای ویزیتورها نداریم.<source lang="Sql">


Code Block
CREATE view iorder_support_visitor as

...


select AS ERPCode,v_Name as Name ,

...


v_pass as PocketPassword ,v_isactive as IsActive

...


from tblVisitor


</source>=== اس پی مربوط به بررسی موارد پشتیبانی ===
در این اس پی باید بر اساس پارامترهای ورودی که دارد در جدوال مربوط به سیستم حسابداری جستجو انجام دهیم
نمونه اس پی به حالت زیر می باشد :<source lang="Sql">


Code Block
create proc Sfa_Support_MisSp

...

 
@CustomerERPCode varchar(50) ='', -- کد مشتری

...

 
@VisitorERPCode varchar(50)='', --کد ویزیتور

...


@ProductERPCode varchar(50)='', --کد کالا

...


@TagERPCode varchar(50)='', --برچسب

...


@AnbarERPCode varchar(50)='' --کد انبار

...


AS

...


begin

...

 
create table #tblResult(

...

 
isOK bit,

...


retStr nvarchar(500),

...

 
description nvarchar(1000) default ''

...


)

...


if (@CustomerERPCode <> '')

...


begin

...

 
--دراین قسمت با توجه به فیلدهایی که در جدول مشتریان لازم است

...

 
--بررسی شود جستجو انجام میدهیم

...


--واگر شرط مورد درست بود به شکل زیر عمل می کنیم

...


insert into #tblResult values (1,'شرط درست است','متن راهنما در اینجا قرار میگیرد')

...

 
--واگر شرط مورد درست نبود به شکل زیر عمل می کنیم

...

 
insert into #tblResult values (0,'شرط درست نیست','متن راهنما در اینجا قرار میگیرد-دلیل بروز خطا')

...


end

...


if (@VisitorERPCode <> '')

...


begin

...

 
--دراین قسمت با توجه به فیلدهایی که در جدول ویزیتور لازم است

...


--بررسی شود جستجو انجام میدهیم

...


--واگر شرط مورد درست بود به شکل زیر عمل می کنیم

...


insert into #tblResult values (1,'شرط درست است','متن راهنما در اینجا قرار میگیرد')

...

 
--واگر شرط مورد درست نبود به شکل زیر عمل می کنیم

...


insert into #tblResult values (0,'شرط درست نیست','متن راهنما در اینجا قرار میگیرد-دلیل بروز خطا')

...


end

...


if (@ProductERPCode <> '')

...


begin

...

 
--دراین قسمت با توجه به فیلدهایی که در جدول کالا لازم است

...

 
--بررسی شود جستجو انجام میدهیم

...


--واگر شرط مورد درست بود به شکل زیر عمل می کنیم

...


insert into #tblResult values (1,'شرط درست است','متن راهنما در اینجا قرار میگیرد')

...


--واگر شرط مورد درست نبود به شکل زیر عمل می کنیم

...


insert into #tblResult values (0,'شرط درست نیست','متن راهنما در اینجا قرار میگیرد-دلیل بروز خطا')

...


end

...


--کالا-مشتری

...


if (@ProductERPCode <> '' AND @CustomerERPCode <> '')

...


begin

...

 
--دراین قسمت به بررسی قیمت کالای انتخاب شده برای مشتری می پردازیم

...


--بدین صورت که درسیستم حسابداری در جداول مربوطه قیمت کالا را برای

...


--مشتری مورد نظر با پیامی مناسب به جدول اینزرت میکنیم #tblResult

...

 
--و درضمن می توان لیست قیمت های کالارا نیز در این لیست به کاربر نشان داد

...


end

...


--ویزیتور و مشتری

...


if (@CustomerERPCode <> '' AND @VisitorERPCode<> '')

...


begin

...


--طبق مواردی که قبلا گفته شده است هر ویزیتور می تواند برنامه ویزیت داشته باشد

...

 
--اگر در سیستم حسابداری برای ویزیتورها لاین تعریف شده و مسیر ویزیت

...

 
--یعنی هر ویزیتور فقط می تواند محدوده خودش را ویزیت کند

...


--در این قسمت با استفاده از کد مشتری و کد ویزیتور بررسی می کنیم که آیا این ویزیتور

...


--می تواند این مشتری را ویزیت کند یا خیر و با پیامی مناسب خروجی را در جدول اینزت می کنیم

...


end

...


--ویزیتور و کالا

...


if (@ProductERPCode <> '' AND @VisitorERPCode <> '')

...


begin

...

 
--این قسمت همانند مشتری و ویزیتور است با این تفاوت که به بررسی لاین فروش ویزیتور می باشد

...


--بدین معنی که ویزیتور فقط امکان فروش کالاهای خاصی را دارد

...


end

...


--کالا و انبار

...


if (@ProductERPCode <> '' AND @AnbarERPCode <> '')

...


begin

...

 
--در این قسمت اگر در سیستم حسابداری انبار مفهومی داشته باشد

...

 
--باید با توجه به کالای انتخاب شده و کد انبار مورد نظر موجودی

...

 
--کالا را در سیستم حسابداری و در انبار به کاربر با پیامی مناسب در جدول اینزرت کند

...


end

...


select * from #tblResult

...

 
drop table #tblResult END

...


end


</source>
{{نکته}} در کل منظور از این اس پی این است که باتوجه به بررسی ها یک جدول به خروجی بدهد تا در فرم پشتیبانی برای کاربر به نمایش در بیاید و منظوراز عدد 1 و 0 در فیلد isok جدول tblResult# بدین معنی است که آن سطر از جدول به درستی کارش انجام شده است یا نه

=== اس پی مربوط به بررسی موارد پشتیبانی

-Sfa_Support_MisSp ===