public void DeleteDyeingMainDetailsAcc(TblDyeingOrdersMainDetailsACC maindetails) { using (var entities = new WorkFlowManagerDBEntities()) { var detailsList = entities.TblDyeingOrdersDetailsAccs.Include("DyeingOrderDetailsServicesAccs").Where(x => x.DyeingProductionOrder == maindetails.DyeingProductionOrder && x.TransactionType == maindetails.TransactionType && x.TransId == maindetails.TransId); foreach (var item in detailsList) { foreach (var service in item.DyeingOrderDetailsServicesAccs.ToList()) { entities.DeleteObject(service); } entities.DeleteObject(item); } var mainDet = entities.TblDyeingOrdersMainDetailsACCs.SingleOrDefault(x => x.DyeingProductionOrder == maindetails.DyeingProductionOrder && x.TransactionType == maindetails.TransactionType && x.TransId == maindetails.TransId); entities.DeleteObject(mainDet); entities.SaveChanges(); } }
public void GenerateDyeingOrdersAcc(int iserial) { using (var entities = new WorkFlowManagerDBEntities()) { var planHeader = entities.TblDyeingPlanHeaderAccs.SingleOrDefault(x => x.Iserial == iserial); planHeader.PlanGenerated = true; var dyeingSummaryList = entities.TblDyeingSummaryAccs.Where(x => x.DyeingHeader == planHeader.Iserial).ToList(); var vendorList = dyeingSummaryList.Select(x => x.Vendor).Distinct().ToList(); foreach (var item in vendorList) { var dyeingHeaderRow = new TblDyeingOrdersHeaderAcc { DocPlan = planHeader.DocNo, Vendor = item }; entities.AddToTblDyeingOrdersHeaderAccs(dyeingHeaderRow); entities.SaveChanges(); const int transId = 1; var mainDetails = new TblDyeingOrdersMainDetailsACC { DyeingProductionOrder = dyeingHeaderRow.DyeingProductionOrder, WareHouse = planHeader.Location, TransactionType = 0, TransId = transId, Posted = false }; entities.AddToTblDyeingOrdersMainDetailsACCs(mainDetails); entities.SaveChanges(); var summarylist = dyeingSummaryList.Where(x => x.Vendor == item).ToList(); var sub = new ObservableCollection <TblDyeingOrdersDetailsAcc>(); foreach (var dyeingObject in summarylist) { sub.Add(new TblDyeingOrdersDetailsAcc { Size = dyeingObject.Size, Color = dyeingObject.Color, DyedFabric = dyeingObject.DyedFabric, Unit = dyeingObject.Unit, CalculatedTotalQty = Convert.ToSingle(dyeingObject.CalculatedTotalQty), FabricCode = dyeingObject.FabricCode, DyeingProductionOrder = dyeingHeaderRow.DyeingProductionOrder, TransactionType = mainDetails.TransactionType, TransId = mainDetails.TransId, }); } foreach (var orderDetails in sub) { entities.AddToTblDyeingOrdersDetailsAccs(orderDetails); entities.SaveChanges(); } } } }
private void PickingListForAxServicesAcc(TblDyeingOrdersHeaderAcc objToPost, TblDyeingOrdersMainDetailsACC headerObjToPost, int postPostOrNo, int userIserial, string transactionGuid) { using (var entities = new WorkFlowManagerDBEntities()) { var axapta = new Axapta(); AxaptaRecord AxaptaRecord; var credential = new NetworkCredential("bcproxy", "around1"); var tableName = "PRODCONNECTION"; TblAuthUser userToLogin; using (var model = new WorkFlowManagerDBEntities()) { userToLogin = model.TblAuthUsers.SingleOrDefault(x => x.Iserial == userIserial); } axapta.LogonAs(userToLogin.User_Win_Login, userToLogin.User_Domain, credential, "Ccm", null, null, null); var vendorWmsLocation = entities.GetWmsLocations.SingleOrDefault(x => x.VENDID == objToPost.Vendor); var vendorLoc = entities.GetLocations.SingleOrDefault(x => x.INVENTLOCATIONID == vendorWmsLocation.INVENTLOCATIONID); try { foreach (var item in headerObjToPost.TblDyeingOrdersDetailsAccs) { foreach (var service in item.DyeingOrderDetailsServicesAccs) { AxaptaRecord = axapta.CreateAxaptaRecord(tableName); AxaptaRecord.Clear(); AxaptaRecord.InitValue(); AxaptaRecord.set_Field("TRANSID", item.DyeingProductionOrder); AxaptaRecord.set_Field("RAWID", service.ServiceCode); AxaptaRecord.set_Field("DYEDITEM", service.ServiceCode); AxaptaRecord.set_Field("RAWQTY", item.CalculatedTotalQty); AxaptaRecord.set_Field("DYEDQTY", item.CalculatedTotalQty); //AxaptaRecord.set_Field("UNITID", item.Unit); AxaptaRecord.set_Field("FROMSITE", vendorLoc.INVENTSITEID); AxaptaRecord.set_Field("TOSITE", vendorLoc.INVENTSITEID); AxaptaRecord.set_Field("FROMLOCATION", vendorWmsLocation.WMSLOCATIONID); AxaptaRecord.set_Field("TOLOCATION", vendorWmsLocation.WMSLOCATIONID); AxaptaRecord.set_Field("TRANSTYPE", Convert.ToInt64(2)); AxaptaRecord.set_Field("FROMCONFIG", item.Color); AxaptaRecord.set_Field("TOCONFIG", item.Color); // AxaptaRecord.set_Field("FROMBATCH", item.BatchNo.ToString()); //AxaptaRecord.set_Field("TOBATCH", item.BatchNo.ToString()); AxaptaRecord.set_Field("FROMWAREHOUSE", vendorWmsLocation.INVENTLOCATIONID); AxaptaRecord.set_Field("TOWAREHOUSE", vendorWmsLocation.INVENTLOCATIONID); AxaptaRecord.set_Field("JOURNALLINKID", headerObjToPost.TransId); AxaptaRecord.set_Field("TransactionGuid", transactionGuid); AxaptaRecord.Insert(); } } //public ProdJournalId run(int transId,int journalId,int WhatToDo,str JourName,int PostorNo) var import = axapta.CreateAxaptaObject("CLEDyeProcesse"); var PickingList = import.Call("run", headerObjToPost.DyeingProductionOrder, headerObjToPost.TransId, 2, "Name", postPostOrNo); axapta.Logoff(); } catch (Exception) { axapta.Logoff(); throw; } } }
public void PurchaseDyeingServicesToAxAcc(TblDyeingOrdersHeaderAcc objToPost, TblDyeingOrdersMainDetailsACC headerObjToPost, int postPostOrNo, int userIserial, string transactionGuid) { using (var context = new WorkFlowManagerDBEntities()) { using (var axapta = new Axapta()) { var credential = new NetworkCredential("bcproxy", "around1"); TblAuthUser userToLogin; userToLogin = context.TblAuthUsers.SingleOrDefault(x => x.Iserial == userIserial); axapta.LogonAs(userToLogin.User_Win_Login, userToLogin.User_Domain, credential, "Ccm", null, null, null); var inventTable = axapta.CreateAxaptaRecord("InventDim"); try { var vendorWmsLocation = context.GetWmsLocations.SingleOrDefault(x => x.VENDID == objToPost.Vendor); var vendorLoc = context.GetLocations.SingleOrDefault(x => x.INVENTLOCATIONID == vendorWmsLocation.INVENTLOCATIONID); var purchId = "Rc_ " + headerObjToPost.DyeingProductionOrder.ToString() + headerObjToPost.TransId.ToString() + headerObjToPost.TransactionType; var tableName = "PurchTable"; var purchTableRecord = axapta.CreateAxaptaRecord(tableName); purchTableRecord.Clear(); purchTableRecord.InitValue(); purchTableRecord.set_Field("PurchId", purchId); purchTableRecord.set_Field("DeliveryDate", headerObjToPost.TblDyeingOrdersDetailsAccs.OrderByDescending(x => x.EstimatedDeliveryDate).FirstOrDefault().EstimatedDeliveryDate ?? DateTime.Now); var headerax = axapta.CallStaticRecordMethod("VendTable", "find", objToPost.Vendor) as AxaptaRecord; purchTableRecord.Call("initFromVendTable", headerax); purchTableRecord.Insert(); foreach (var item in headerObjToPost.TblDyeingOrdersDetailsAccs) { tableName = "PurchLine"; foreach (var servicerow in item.DyeingOrderDetailsServicesAccs) { var axaptaRecord = axapta.CreateAxaptaRecord(tableName); axaptaRecord.Clear(); axaptaRecord.InitValue(); inventTable.Clear(); inventTable.set_Field("InventLocationId", vendorLoc.INVENTLOCATIONID); if (item.Color != null) { inventTable.set_Field("InventColorId", item.Color); } var importNew = axapta.CreateAxaptaObject("CreateProductionJournals"); var producationOrder = "Free"; using (var model = new ax2009_ccEntities()) { // var batch = item.BatchNo.ToString(); var firstOrDefault = model.PRODCONNECTIONs.FirstOrDefault( x => x.DYEDITEM == item.DyedFabric && x.TRANSID == item.DyeingProductionOrder && x.FROMCONFIG == item.Color && // x.FROMBATCH == batch && x.JOURNALLINKID == item.TransId); if (firstOrDefault != null) { producationOrder = firstOrDefault.PRODID; } } if (producationOrder == null || producationOrder == "") { producationOrder = "Free"; } importNew.Call("CreateConfig", servicerow.ServiceCode, item.Color); importNew.Call("CreateBatch", servicerow.ServiceCode, producationOrder); inventTable.set_Field("configId", item.Color); inventTable.set_Field("inventBatchId", producationOrder); inventTable = axapta.CallStaticRecordMethod("InventDim", "findOrCreate", inventTable) as AxaptaRecord; if (inventTable != null) { var tempx = inventTable.get_Field("inventDimId").ToString(); axaptaRecord.set_Field("InventDimId", tempx); } axaptaRecord.set_Field("ItemId", servicerow.ServiceCode); axaptaRecord.set_Field("purchId", purchId); axaptaRecord.set_Field("QtyOrdered", Convert.ToDecimal(item.CalculatedTotalQty.ToString())); decimal price = 1; //context.TblTradeAgreementDetails.Where(x => x.ItemCode == servicerow.ServiceCode && x.TblTradeAgreementHeader1.Vendor == objToPost.Vendor); axaptaRecord.set_Field("PurchPrice", Convert.ToDecimal(price)); axaptaRecord.set_Field("PurchQty", Convert.ToDecimal(item.CalculatedTotalQty.ToString())); axaptaRecord.set_Field("LineAmount", Convert.ToDecimal(item.CalculatedTotalQty.ToString()) * price); axaptaRecord.Call("createLine", true, true, true, true, true, false); } //No errors occured, Commit! //Axapta.TTSCommit(); if (postPostOrNo == 1) { var importNew = axapta.CreateAxaptaObject("CreateProductionJournals"); importNew.Call("PostPurchaseOrder", purchId, objToPost.TransactionDate ?? DateTime.Now); PickingListForAxServicesAcc(objToPost, headerObjToPost, postPostOrNo, userIserial, transactionGuid); } } } catch (Exception ex) { //There was some errors, Abort transaction and Raise error! //Axapta.TTSAbort(); throw new Exception(ex.Message); } finally { //Finally logoff the Axapta Session axapta.Logoff(); } } } }