Exemplo n.º 1
0
        public HttpResponseMessage SaveUpdateDC(object[] data)
        {
            SalDCMaster        itemMaster  = JsonConvert.DeserializeObject <SalDCMaster>(data[0].ToString());
            List <SalDCDetail> itemDetails = JsonConvert.DeserializeObject <List <SalDCDetail> >(data[1].ToString());
            vmCmnParameters    objcmnParam = JsonConvert.DeserializeObject <vmCmnParameters>(data[2].ToString());

            string result = "";

            try
            {
                if (ModelState.IsValid)
                {
                    result = objDCService.SaveUpdateDC(itemMaster, itemDetails, objcmnParam);
                }
            }
            catch (Exception e)
            {
                e.ToString();
                result = "";
            }
            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
Exemplo n.º 2
0
        public string SaveUpdateDC(SalDCMaster DCInfo, List <SalDCDetail> DCDetailList, vmCmnParameters objcmnParam)
        {
            GenericFactory_EF_DCMaster  = new SalDCMaster_EF();
            GenericFactory_EF_DCDetail  = new SalDCDetail_EF();
            GFactory_EF_InvStockMaster  = new InvStockMaster_EF();
            GFactory_EF_InvStockDetail  = new InvStockDetail_EF();
            GenericFactory_EF_FDOMaster = new SalFDOMaster_EF();
            GenericFactory_EF_FDODetail = new SalFDODetail_EF();
            GFactory_EF_InvStockTransit = new InvStockTransit_EF();

            string result = "";

            long NextId = Convert.ToInt64(GenericFactory_EF_DCMaster.getMaxID("SalDCMaster"));

            long FirstDigit   = 0;
            long OtherDigits  = 0;
            long nextDetailId = Convert.ToInt64(GenericFactory_EF_DCDetail.getMaxID("SalDCDetail"));

            FirstDigit  = Convert.ToInt64(nextDetailId.ToString().Substring(0, 1));
            OtherDigits = Convert.ToInt64(nextDetailId.ToString().Substring(1, nextDetailId.ToString().Length - 1));


            string customCode = "";

            string CustomNo = customCode = GenericFactory_EF_DCMaster.getCustomCode(objcmnParam.menuId, DCInfo.DCDate,
                                                                                    DCInfo.CompanyID, objcmnParam.loggeduser, 1); // 1 for DB ID

            if (CustomNo != null)
            {
                customCode = CustomNo;
            }
            else
            {
                customCode = NextId.ToString();
            }

            try
            {
                DCInfo.DCID     = NextId;
                DCInfo.DCNo     = customCode;
                DCInfo.CreateOn = DateTime.Now;
                DCInfo.IsActive = true;

                List <SalDCDetail> lstSalDCDetail = new List <SalDCDetail>();
                foreach (SalDCDetail sdtl in DCDetailList)
                {
                    SalDCDetail objSalDCDetail = new SalDCDetail();
                    //objSalDCDetail.DCDetailID = nextDetailId;
                    objSalDCDetail.DCDetailID  = Convert.ToInt64(FirstDigit + "" + OtherDigits);
                    objSalDCDetail.DCID        = NextId;
                    objSalDCDetail.FDOID       = sdtl.FDOID;
                    objSalDCDetail.TruckNo     = sdtl.TruckNo;
                    objSalDCDetail.QuantityYds = sdtl.QuantityYds;
                    objSalDCDetail.Roll        = sdtl.Roll;
                    objSalDCDetail.CompanyID   = DCInfo.CompanyID;
                    objSalDCDetail.CreateBy    = DCInfo.CreateBy;
                    objSalDCDetail.CreateOn    = DateTime.Now;
                    objSalDCDetail.CreatePc    = HostService.GetIP();
                    objSalDCDetail.IsDeleted   = false;
                    objSalDCDetail.StatusBy    = 1;
                    objSalDCDetail.StatusID    = 1;
                    lstSalDCDetail.Add(objSalDCDetail);

                    OtherDigits++;
                }

                using (TransactionScope transaction = new TransactionScope())
                {
                    /////////////////////// Start FDOMaster and FDO Detail Table Update /////////////////////////////

                    foreach (SalDCDetail sdcd in DCDetailList)
                    {
                        SalFDOMaster objSalFDOMaster = GenericFactory_EF_FDOMaster.FindBy(m => m.FDOMasterID == sdcd.FDOID).FirstOrDefault();
                        objSalFDOMaster.IsDCCompleted = true;
                        GenericFactory_EF_FDOMaster.Update(objSalFDOMaster);
                        GenericFactory_EF_FDOMaster.Save();

                        List <SalFDODetail> objSalFDODetail = GenericFactory_EF_FDODetail.FindBy(m => m.FDOMasterID == sdcd.FDOID).ToList();
                        foreach (SalFDODetail sfdod in objSalFDODetail)
                        {
                            sfdod.IsDCCompleted = true;
                            GenericFactory_EF_FDODetail.Update(sfdod);
                            GenericFactory_EF_FDODetail.Save();
                        }
                    }

                    /////////////////////// End FDOMaster and FDO Detail Table Update /////////////////////////////



                    /////////////////////// Start Stock Table Update /////////////////////////////
                    //#region Stock Hit
                    //IEnumerable<SalFDODetail> objFDODetail = null;
                    ////string spQuery = string.Empty;
                    //try
                    //{
                    //    objFDODetail = GenericFactory_EF_FDODetail.GetAll().Select(m => new
                    //    SalFDODetail
                    //    {
                    //        ItemID = m.ItemID,
                    //        BatchID = m.BatchID,
                    //        LotID = m.LotID,
                    //        GradeID = m.GradeID,
                    //        QuantitYds = m.QuantitYds,
                    //        FDOMasterID = m.FDOMasterID,
                    //        CompanyID = m.CompanyID
                    //    }).
                    //    Where(m => m.FDOMasterID == DCInfo.FDOID).ToList();
                    //}
                    //catch (Exception e)
                    //{
                    //    e.ToString();
                    //}

                    //List<InvStockMaster> objInvStockMaster = GFactory_EF_InvStockMaster.FindBy(m => m.DepartmentID == objSalFDOMaster.DepartmentID).ToList();

                    //foreach (SalFDODetail sfdod in objFDODetail)
                    //{
                    //    InvStockMaster objStockMaster = new InvStockMaster();

                    //    var ItemBatchFilter = objInvStockMaster.Where(x => x.ItemID == sfdod.ItemID
                    //                           && sfdod.BatchID == null ? true : x.BatchID == sfdod.BatchID).ToArray();

                    //    var TransitBatch2 = ItemBatchFilter.Where(x => sfdod.LotID == null ? true : x.LotID == sfdod.LotID).ToArray();

                    //    objStockMaster = ItemBatchFilter.Where(x => sfdod.GradeID == null ? true : x.GradeID == sfdod.GradeID).FirstOrDefault();

                    //    objStockMaster.IssueQty = objStockMaster.IssueQty + sfdod.QuantitYds;
                    //    GFactory_EF_InvStockMaster.Update(objStockMaster);
                    //    GFactory_EF_InvStockMaster.Save();

                    //     ///////////////////////////////// detail insert /////////////////////////////////////

                    //    InvStockDetail objInvStockDetail = new InvStockDetail();
                    //    objInvStockDetail.StockID = objStockMaster.StockID;
                    //    objInvStockDetail.DepartmentID = objSalFDOMaster.DepartmentID;
                    //    objInvStockDetail.TransactionID = objSalFDOMaster.FDOMasterID;
                    //    objInvStockDetail.TransactionTypeID = objcmnParam.tTypeId??0;
                    //    objInvStockDetail.StockDate = DateTime.Now;
                    //    objInvStockDetail.ItemID = sfdod.ItemID;

                    //    objInvStockDetail.ItemTypeID = 1;
                    //    objInvStockDetail.LotID = sfdod.LotID == null ? 0 : (int)sfdod.LotID;
                    //    objInvStockDetail.BatchID = sfdod.BatchID == null ? 0 : (int)sfdod.BatchID;
                    //    objInvStockDetail.GradeID = sfdod.GradeID == null ? 0 : (int)sfdod.GradeID;
                    //    objInvStockDetail.LotNo = "";
                    //    objInvStockDetail.SupplierID = 0;
                    //    objInvStockDetail.ReceiveQty = 0;
                    //    objInvStockDetail.ReceiveValue = 0;
                    //    objInvStockDetail.ReceiveRate = 0;
                    //    objInvStockDetail.IssueQty = sfdod.QuantitYds;
                    //    objInvStockDetail.UOMID = 0;
                    //    objInvStockDetail.IssueRate = 0;
                    //    objInvStockDetail.IssueValue = 0;
                    //    objInvStockDetail.IsActive = true;
                    //    objInvStockDetail.IssueRate = 0;
                    //    objInvStockDetail.CompanyID = sfdod.CompanyID;
                    //    objInvStockDetail.CreateBy = objSalFDOMaster.CreateBy;
                    //    objInvStockDetail.CreateOn = DateTime.Now;
                    //    objInvStockDetail.CreatePc =  HostService.GetIP();

                    //    GFactory_EF_InvStockDetail.Insert(objInvStockDetail);
                    //    GFactory_EF_InvStockDetail.Save();

                    //}

                    //#endregion Stock Hit
                    /////////////////////// End Stock Table Update //////////////////////////////

                    /////////////////////// Stock Transit Table Data Delete /////////////////////
                    //#region Stock Transit Hit

                    //foreach (SalFDODetail sfdod in objFDODetail)
                    //{
                    //    List<InvStockTransit> objInvStockTransit =
                    //    GFactory_EF_InvStockTransit.FindBy(m => m.DepartmentID == objSalFDOMaster.DepartmentID
                    //                                       //&& m.LotID == sfdod.LotID && m.BatchID == sfdod.BatchID && m.GradeID == sfdod.GradeID
                    //                                       && m.ItemID == sfdod.ItemID && m.CompanyID == sfdod.CompanyID
                    //                                       && m.TransactionTypeID == objSalFDOMaster.FDOTypeID
                    //                                       && m.TransactionID == sfdod.FDOMasterID).ToList();

                    //    GFactory_EF_InvStockTransit.DeleteList(objInvStockTransit);
                    //    GFactory_EF_InvStockTransit.Save();
                    //}

                    //#endregion End Stock Transit Hit
                    /////////////////////// End Stock Transit Table Data Delete /////////////////////


                    GenericFactory_EF_DCMaster.Insert(DCInfo);
                    GenericFactory_EF_DCMaster.Save();

                    GenericFactory_EF_DCMaster.updateMaxID("SalDCMaster", Convert.ToInt64(NextId));

                    GenericFactory_EF_DCMaster.updateCustomCode(objcmnParam.menuId, DateTime.Now, DCInfo.CompanyID, 1, 1);

                    GenericFactory_EF_DCDetail.InsertList(lstSalDCDetail);
                    GenericFactory_EF_DCDetail.Save();
                    GenericFactory_EF_DCDetail.updateMaxID("SalDCDetail", Convert.ToInt64(FirstDigit + "" + (OtherDigits - 1)));
                    transaction.Complete();
                }
                result = customCode;
            }
            catch (Exception e)
            {
                e.ToString();
                result = "";
            }
            finally
            {
            }
            return(result);
        }