public void CreateLine(RetailSOLine soDaily) { EntityKey[] entitykey = new EntityKey[1]; if (!string.IsNullOrEmpty(soDaily.Series)) { string orderDate = soDaily.Date.ToShortDateString(); var callContextLine = new CallContext() { MessageId = Guid.NewGuid().ToString(), LogonAsUser = string.Format(@"{0}\{1}", UserAccount.Domain, UserAccount.Username), Language = "en-us" }; var lineEntity = new AxdEntity_StmSalesSoDailyLine(); lineEntity.Series = soDaily.Series; lineEntity.Model = soDaily.Model; lineEntity.Sink = soDaily.Sink; if (soDaily.Date != DateTime.MinValue) { lineEntity.SalesDate = DateTime.ParseExact(orderDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); lineEntity.SalesDateSpecified = true; } //lineEntity.SalesDate = orderDate; //lineEntity.SalesDateSpecified = true; lineEntity.StmStoreId = soDaily.Top;//ใช้เก็บข้อมูล Top แทน //lineEntity.SalesPoolId = soDaily.Pool; lineEntity.SalesQty = Convert.ToDecimal(soDaily.Qty); lineEntity.SalesQtySpecified = true; lineEntity.SalesAmount = Convert.ToDecimal(soDaily.Amount); lineEntity.SalesAmountSpecified = true; lineEntity.SalesOrderDaily = Convert.ToInt64(soDaily.RecIdHeader); lineEntity.SalesOrderDailySpecified = true; var soLine = new AxdSTMSODailyLine() { StmSalesSoDailyLine = new AxdEntity_StmSalesSoDailyLine[1] { lineEntity } }; using (var client = new STMSODailyLineServiceClient()) { client.ClientCredentials.Windows.ClientCredential.Domain = UserAccount.Domain; client.ClientCredentials.Windows.ClientCredential.UserName = UserAccount.Username; client.ClientCredentials.Windows.ClientCredential.Password = UserAccount.Password; entitykey = client.create(callContextLine, soLine); } long refRecId = Convert.ToInt64(entitykey[0].KeyData[0].Value); RetailSOLog.Create(refRecId, soDaily.CreateBy); } }
public void EditLine(RetailSOLine soDaily) { EntityKey[] entitykey = new EntityKey[1]; AxdSTMSODailyLine axdSoLine = new AxdSTMSODailyLine(); var callContext = new CallContext() { MessageId = Guid.NewGuid().ToString(), LogonAsUser = string.Format(@"{0}\{1}", UserAccount.Domain, UserAccount.Username), Language = "en-us" }; KeyField keyField = new KeyField() { Field = "RecId", Value = soDaily.RecId }; EntityKey entityKey = new EntityKey(); entityKey.KeyData = new KeyField[1] { keyField }; EntityKey[] entityKeys = new EntityKey[1] { entityKey }; using (var client = new STMSODailyLineServiceClient()) { client.ClientCredentials.Windows.ClientCredential.Domain = UserAccount.Domain; client.ClientCredentials.Windows.ClientCredential.UserName = UserAccount.Username; client.ClientCredentials.Windows.ClientCredential.Password = UserAccount.Password; axdSoLine = client.read(callContext, entityKeys); } string orderDate = soDaily.Date.ToShortDateString(); using (var client = new STMSODailyLineServiceClient()) { AxdEntity_StmSalesSoDailyLine soLineEntity = axdSoLine.StmSalesSoDailyLine[0]; var axdsoline2 = new AxdSTMSODailyLine() { ClearNilFieldsOnUpdate = axdSoLine.ClearNilFieldsOnUpdate, ClearNilFieldsOnUpdateSpecified = true, DocPurpose = axdSoLine.DocPurpose, DocPurposeSpecified = true, SenderId = axdSoLine.SenderId }; var solineEntityNew = new AxdEntity_StmSalesSoDailyLine(); solineEntityNew._DocumentHash = soLineEntity._DocumentHash; ///for update method solineEntityNew.RecId = Convert.ToInt64(soDaily.RecId); solineEntityNew.RecIdSpecified = true; if (soDaily.Date != DateTime.MinValue) { solineEntityNew.SalesDate = DateTime.ParseExact(orderDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); } else { solineEntityNew.SalesDate = soLineEntity.SalesDate; } solineEntityNew.SalesDateSpecified = true; //solineEntityNew.SalesPoolId = soDaily.Pool; solineEntityNew.Series = soDaily.Series; solineEntityNew.Model = soDaily.Model; solineEntityNew.Sink = soDaily.Sink; solineEntityNew.SalesQty = Convert.ToDecimal(soDaily.Qty); solineEntityNew.SalesQtySpecified = true; solineEntityNew.StmStoreId = soDaily.Top; solineEntityNew.SalesAmount = Convert.ToDecimal(soDaily.Amount); solineEntityNew.SalesAmountSpecified = true; solineEntityNew.SalesOrderDaily = Convert.ToInt64(soDaily.RecIdHeader); solineEntityNew.SalesOrderDailySpecified = true; axdsoline2.StmSalesSoDailyLine = new AxdEntity_StmSalesSoDailyLine[1] { solineEntityNew }; client.ClientCredentials.Windows.ClientCredential.Domain = UserAccount.Domain; client.ClientCredentials.Windows.ClientCredential.UserName = UserAccount.Username; client.ClientCredentials.Windows.ClientCredential.Password = UserAccount.Password; client.update(callContext, entityKeys, axdsoline2); } }