Exemplo n.º 1
0
 public static TblDyeingOrderHeaderViewModel VwMapToDyeingorderHeader(TblDyeingOrdersHeader row)
 {
     return(new TblDyeingOrderHeaderViewModel
     {
         DocPlan = row.DocPlan,
         DyeingProductionOrder = row.DyeingProductionOrder,
         TransactionDate = row.TransactionDate,
         Vendor = row.Vendor,
         VendorPerRow = new Vendor {
             vendor_code = row.Vendor
         }
     });
 }
Exemplo n.º 2
0
        public void GenerateDyeingOrders(int iserial)
        {
            using (var entities = new WorkFlowManagerDBEntities())
            {
                var planHeader = entities.TblDyeingPlanHeaders.SingleOrDefault(x => x.Iserial == iserial);
                if (planHeader != null)
                {
                    planHeader.PlanGenerated = true;

                    var dyeingSummaryList = entities.TblDyeingSummaries.Include("DyeingSummaryServices").Where(x => x.DyeingHeader == planHeader.Iserial).ToList();
                    var vendorList        = dyeingSummaryList.Select(x => x.Vendor).Distinct().ToList();

                    foreach (var item in vendorList)
                    {
                        var dyeingHeaderRow = new TblDyeingOrdersHeader {
                            DocPlan = planHeader.DocNo, Vendor = item, TransactionDate = planHeader.TransactionDate,
                        };

                        entities.AddToTblDyeingOrdersHeaders(dyeingHeaderRow);
                        entities.SaveChanges();

                        const int transId     = 1;
                        var       mainDetails = new TblDyeingOrdersMainDetail
                        {
                            DyeingProductionOrder = dyeingHeaderRow.DyeingProductionOrder,
                            WareHouse             = planHeader.Location,
                            TransactionType       = 0,
                            TransId = transId,
                            Posted  = false
                        };
                        entities.AddToTblDyeingOrdersMainDetails(mainDetails);
                        entities.SaveChanges();

                        var summarylist = dyeingSummaryList.Where(x => x.Vendor == item).ToList();
                        var sub         = new ObservableCollection <TblDyeingOrdersDetail>();
                        foreach (var dyeingObject in summarylist)
                        {
                            var orderDetailsServices = new ObservableCollection <DyeingOrderDetailsService>();
                            foreach (var service in dyeingObject.DyeingSummaryServices)
                            {
                                orderDetailsServices.Add(new DyeingOrderDetailsService
                                {
                                    Notes       = service.Notes,
                                    ServiceCode = service.ServiceCode,
                                    ServiceName = service.ServiceName,
                                    Qty         = service.Qty
                                });
                            }
                            var entityCollection = new EntityCollection <DyeingOrderDetailsService>();

                            foreach (var entity in orderDetailsServices)
                            {
                                entityCollection.Add(entity);
                            }

                            sub.Add(new TblDyeingOrdersDetail
                            {
                                BatchNo                    = dyeingObject.BatchNo,
                                Color                      = dyeingObject.Color,
                                DyeingClass                = dyeingObject.DyeingClass,
                                DyedFabric                 = dyeingObject.DyedFabric,
                                Unit                       = dyeingObject.Unit,
                                CalculatedTotalQty         = Convert.ToSingle(dyeingObject.CalculatedTotalQty),
                                FabricCode                 = dyeingObject.FabricCode,
                                DyeingProductionOrder      = dyeingHeaderRow.DyeingProductionOrder,
                                TransactionType            = mainDetails.TransactionType,
                                TransId                    = mainDetails.TransId,
                                DyeingOrderDetailsServices = entityCollection,
                            });
                        }

                        foreach (var orderDetails in sub)
                        {
                            entities.AddToTblDyeingOrdersDetails(orderDetails);
                            entities.SaveChanges();
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        private void PickingListForAxServices(TblDyeingOrdersHeader objToPost, TblDyeingOrdersMainDetail 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.TblDyeingOrdersDetails)
                    {
                        foreach (var service in item.DyeingOrderDetailsServices)
                        {
                            AxaptaRecord = axapta.CreateAxaptaRecord(tableName);
                            AxaptaRecord.Clear();
                            AxaptaRecord.InitValue();
                            AxaptaRecord.set_Field("TRANSID", item.DyeingProductionOrder);
                            AxaptaRecord.set_Field("RAWID", service.ServiceCode);
                            AxaptaRecord.set_Field("DYEDITEM", item.DyedFabric);
                            AxaptaRecord.set_Field("RAWQTY", item.CalculatedTotalQty);
                            AxaptaRecord.set_Field("DYEDQTY", item.CalculatedTotalQty);
                            AxaptaRecord.set_Field("UNITID", "Kg");
                            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(6));
                            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();
                        }
                    }
                    if (headerObjToPost.TransactionDate == null)
                    {
                        headerObjToPost.TransactionDate = DateTime.UtcNow;
                    }
                    //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, 6, "Name", postPostOrNo, headerObjToPost.TransactionDate.Value.ToUniversalTime());

                    axapta.Logoff();
                }

                catch (Exception)
                {
                    axapta.Logoff();
                    throw;
                }
            }
        }
Exemplo n.º 4
0
        public List <TblDyeingOrdersMainDetail> SaveDyeingOrder(TblDyeingOrdersHeader header, List <TblDyeingOrdersMainDetail> Maindetails)
        {
            using (var entities = new WorkFlowManagerDBEntities())
            {
                if (header.DyeingProductionOrder != 0)
                {
                    var h = entities.TblDyeingOrdersHeaders.SingleOrDefault(x => x.DyeingProductionOrder == header.DyeingProductionOrder);

                    if (h != null)
                    {
                        h.DocPlan         = header.DocPlan;
                        h.TransactionDate = header.TransactionDate;
                        h.Vendor          = header.Vendor;
                    }
                }
                else
                {
                    entities.AddToTblDyeingOrdersHeaders(header);
                }
                entities.SaveChanges();

                foreach (var item in Maindetails)
                {
                    if (item.DyeingProductionOrder == 0)
                    {
                        item.DyeingProductionOrder = header.DyeingProductionOrder;
                        entities.AddToTblDyeingOrdersMainDetails(item);
                    }
                    else
                    {
                        var mainDetailRow = (from d in entities.TblDyeingOrdersMainDetails
                                             where d.TransId == item.TransId && d.TransactionType == item.TransactionType &&
                                             d.DyeingProductionOrder == item.DyeingProductionOrder
                                             select d).SingleOrDefault();

                        if (mainDetailRow != null)
                        {
                            GenericUpdate(mainDetailRow, item, entities);
                        }
                        else
                        {
                            entities.AddToTblDyeingOrdersMainDetails(item);
                        }
                    }
                    entities.SaveChanges();

                    if (item.DyeingProductionOrder != 0)
                    {
                        foreach (var items in item.TblDyeingOrdersDetails.ToList())
                        {
                            var dyeingOrderDetails = (from d in entities.TblDyeingOrdersDetails
                                                      where d.Iserial == items.Iserial && d.TransactionType == item.TransactionType
                                                      select d).SingleOrDefault();
                            if (dyeingOrderDetails != null)
                            {
                                GenericUpdate(dyeingOrderDetails, items, entities);
                            }
                            else
                            {
                                items.TblDyeingOrdersMainDetail = null;
                                entities.AddToTblDyeingOrdersDetails(items);
                            }
                            entities.SaveChanges();
                        }
                    }
                }
            }
            return(Maindetails);
        }
Exemplo n.º 5
0
        public void PurchaseDyeingServicesToAx(TblDyeingOrdersHeader objToPost, TblDyeingOrdersMainDetail 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 = 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.FirstOrDefault(x => x.VENDID == objToPost.Vendor);

                        var vendorLoc =
                            context.GetLocations.FirstOrDefault(x => x.INVENTLOCATIONID == vendorWmsLocation.INVENTLOCATIONID);
                        var purchId   = "Rc_ " + objToPost.DocPlan.ToString() + objToPost.DyeingProductionOrder + headerObjToPost.TransId.ToString() + headerObjToPost.TransactionType;
                        var tableName = "PurchTable";
                        purchId = GenerateNewPurchase(purchId);

                        var purchTableRecord = axapta.CreateAxaptaRecord(tableName);
                        purchTableRecord.Clear();
                        purchTableRecord.InitValue();

                        purchTableRecord.set_Field("PurchId", purchId);
                        purchTableRecord.set_Field("DeliveryDate", headerObjToPost.TblDyeingOrdersDetails.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.TblDyeingOrdersDetails)
                        {
                            tableName = "PurchLine";
                            foreach (var servicerow in item.DyeingOrderDetailsServices)
                            {
                                var axaptaRecord = axapta.CreateAxaptaRecord(tableName);
                                axaptaRecord.Clear();
                                axaptaRecord.InitValue();

                                inventTable.Clear();
                                inventTable.set_Field("InventLocationId", vendorLoc.INVENTLOCATIONID);
                                inventTable.set_Field("wMSLocationId", vendorWmsLocation.WMSLOCATIONID);
                                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 firstOrDefault = model.PRODCONNECTIONs.FirstOrDefault(
                                        x =>
                                        x.DYEDITEM == item.DyedFabric && x.TRANSID == item.DyeingProductionOrder &&
                                        x.TOCONFIG == item.Color && x.PRODID != "");
                                    if (firstOrDefault != null)
                                    {
                                        producationOrder =
                                            firstOrDefault.PRODID;
                                    }
                                }
                                if (producationOrder == null || (string)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.set_Field("INVENTSITEID", vendorLoc.INVENTSITEID);
                                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("PurchUnit", "Kg");

                                axaptaRecord.set_Field("ItemId", servicerow.ServiceCode);
                                axaptaRecord.set_Field("purchId", purchId);
                                axaptaRecord.set_Field("QtyOrdered", Convert.ToDecimal(item.CalculatedTotalQty.ToString()));
                                decimal price = 1;
                                price = (decimal)servicerow.Qty;
                                axaptaRecord.set_Field("PurchPrice", Convert.ToDecimal(price));
                                axaptaRecord.set_Field("PurchQty", Convert.ToDecimal(item.CalculatedTotalQty.ToString()));
                                axaptaRecord.set_Field("LineAmount", Convert.ToDecimal(price * (decimal)item.CalculatedTotalQty));
                                axaptaRecord.Call("createLine", true, true, false, true, true, false);
                            }
                        }
                        if (postPostOrNo == 1)
                        {
                            var importNew = axapta.CreateAxaptaObject("CreateProductionJournals");
                            importNew.Call("PostPurchaseOrder", purchId, objToPost.TransactionDate ?? DateTime.Now);
                            PickingListForAxServices(objToPost, headerObjToPost, postPostOrNo, userIserial,
                                                     transactionGuid);
                        }
                    }

                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message);
                    }
                    finally
                    {
                        axapta.Logoff();
                    }
                }
            }
        }