Пример #1
0
        public HttpResponseMessage SaveUpdateChallanMasterNdetails(object[] data)
        {
            InvRChallanMaster        itemMaster  = JsonConvert.DeserializeObject <InvRChallanMaster>(data[0].ToString());
            List <InvRChallanDetail> itemDetails = JsonConvert.DeserializeObject <List <InvRChallanDetail> >(data[1].ToString());
            int    menuID = Convert.ToInt16(data[2]);
            string result = "";

            try
            {
                if (ModelState.IsValid && itemMaster != null && itemMaster.CHDate.ToString() != "" && itemDetails.Count > 0 && menuID != null)
                {
                    result = objChallanService.SaveUpdateChallanMasterNdetails(itemMaster, itemDetails, menuID);
                }
                else
                {
                    result = "";
                }
            }
            catch (Exception e)
            {
                e.ToString();
                result = "";
            }

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
Пример #2
0
        public string SaveUpdateChallanMasterNdetails(InvRChallanMaster chMaster, List <InvRChallanDetail> chDetails, int menuID)
        {
            _ctxCmn = new ERP_Entities();
            GenericFactory_EF_CmnCombo = new CmnCombo_EF();
            string result = "";

            if (chMaster.CHID > 0)
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    try
                    {
                        Int64 chID = chMaster.CHID;
                        IEnumerable <InvRChallanMaster> lstInvRChallanMaster = (from qcm in _ctxCmn.InvRChallanMasters.Where(m => m.CHID == chID) select qcm).ToList();
                        InvRChallanMaster objInvRChallanMaster = new InvRChallanMaster();
                        foreach (InvRChallanMaster qcms in lstInvRChallanMaster)
                        {
                            qcms.UpdateBy          = chMaster.CreateBy;
                            qcms.UpdateOn          = DateTime.Now;
                            qcms.UpdatePc          = HostService.GetIP();
                            qcms.CHID              = chMaster.CHID;
                            qcms.CurrencyID        = chMaster.CurrencyID;
                            qcms.CompanyID         = chMaster.CompanyID;
                            qcms.CHDate            = chMaster.CHDate;
                            qcms.CHTypeID          = chMaster.CHTypeID;
                            qcms.DepartmentID      = chMaster.DepartmentID;
                            qcms.DischargePortID   = chMaster.DischargePortID;
                            qcms.IsDeleted         = false;
                            qcms.LoadingPortID     = chMaster.LoadingPortID;
                            qcms.PartyID           = chMaster.PartyID;
                            qcms.PIID              = chMaster.PIID;
                            qcms.POID              = chMaster.POID;
                            qcms.RefCHDate         = chMaster.RefCHDate;
                            qcms.RefCHNo           = chMaster.RefCHNo;
                            qcms.Remarks           = chMaster.Remarks;
                            qcms.TransactionTypeID = chMaster.TransactionTypeID;
                            qcms.TypeID            = chMaster.TypeID;

                            objInvRChallanMaster = qcms;
                        }
                        List <InvRChallanDetail> lstInvRChallanDetail = new List <InvRChallanDetail>();
                        foreach (InvRChallanDetail qcdt in chDetails)
                        {
                            InvRChallanDetail objInvRChallanDetail = (from qcdetl in _ctxCmn.InvRChallanDetails.Where(m => m.CHDetailID == qcdt.CHDetailID) select qcdetl).FirstOrDefault();
                            //start for exist passed n reject qty
                            // decimal? prePassedRejectQty = objInvMrrQcDetail.PassQty + objInvMrrQcDetail.RejectQty;
                            //end for exist passed n reject qty

                            objInvRChallanDetail.AditionalQty  = qcdt.AditionalQty;
                            objInvRChallanDetail.DisAmount     = qcdt.DisAmount;
                            objInvRChallanDetail.IsPercent     = qcdt.IsPercent;
                            objInvRChallanDetail.TotalAmount   = qcdt.TotalAmount;
                            objInvRChallanDetail.Amount        = qcdt.Amount;
                            objInvRChallanDetail.BatchID       = qcdt.BatchID;
                            objInvRChallanDetail.IsDeleted     = false;
                            objInvRChallanDetail.GrossWeight   = qcdt.GrossWeight;
                            objInvRChallanDetail.ItemID        = qcdt.ItemID;
                            objInvRChallanDetail.LotID         = qcdt.LotID;
                            objInvRChallanDetail.NetWeight     = qcdt.NetWeight;
                            objInvRChallanDetail.PackingQty    = qcdt.PackingQty;
                            objInvRChallanDetail.PackingUnitID = qcdt.PackingUnitID;
                            objInvRChallanDetail.Qty           = qcdt.Qty;
                            objInvRChallanDetail.UnitID        = qcdt.UnitID;
                            objInvRChallanDetail.UnitPrice     = qcdt.UnitPrice;
                            objInvRChallanDetail.WeightUnitID  = qcdt.WeightUnitID;
                            objInvRChallanDetail.UpdateBy      = chMaster.CreateBy;
                            objInvRChallanDetail.UpdateOn      = DateTime.Now;
                            objInvRChallanDetail.UpdatePc      = HostService.GetIP();
                            lstInvRChallanDetail.Add(objInvRChallanDetail);

                            //InvGrrDetail objInvGrrDetail = (from grrd in _ctxCmn.InvGrrDetails.Where(m => m.GrrID == qcMaster.GrrID && m.ItemID == qcdt.ItemID) select grrd).FirstOrDefault();
                            //objInvGrrDetail.QcRemainingQty = (objInvGrrDetail.QcRemainingQty + prePassedRejectQty) - (qcdt.PassQty + qcdt.RejectQty);
                        }
                        _ctxCmn.SaveChanges();
                        transaction.Complete();
                        result = chMaster.CHNo.ToString();
                    }
                    catch (Exception e)
                    {
                        e.ToString();
                        result = "";
                    }
                }
            }
            else
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    try
                    {
                        //...........START  new maxId...............//
                        long NextId         = Convert.ToInt16(GenericFactory_EF_CmnCombo.getMaxID("InvRChallanMaster"));
                        long FirstDigit     = 0;
                        long OtherDigits    = 0;
                        long nextChDetailId = Convert.ToInt16(GenericFactory_EF_CmnCombo.getMaxID("InvRChallanDetail"));
                        FirstDigit  = Convert.ToInt64(nextChDetailId.ToString().Substring(0, 1));
                        OtherDigits = Convert.ToInt64(nextChDetailId.ToString().Substring(1, nextChDetailId.ToString().Length - 1));
                        //..........END new maxId....................//


                        //......... START for custom code........... //

                        string customCode = "";
                        string CustomNo   = GenericFactory_EF_CmnCombo.getCustomCode(menuID, DateTime.Now, chMaster.CompanyID ?? 1, 1, 1);

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

                        //.........END for custom code............ //

                        string newChNo = customCode;
                        chMaster.CHID      = NextId;
                        chMaster.CreateOn  = DateTime.Now;
                        chMaster.CreatePc  = HostService.GetIP();
                        chMaster.CHNo      = newChNo;
                        chMaster.IsDeleted = false;

                        // itemMaster.IsHDOCompleted = false;
                        // itemMaster.IsLcCompleted = false;


                        List <InvRChallanDetail> lstchDetail = new List <InvRChallanDetail>();
                        foreach (InvRChallanDetail sdtl in chDetails)
                        {
                            InvRChallanDetail objchDetail = new InvRChallanDetail();
                            objchDetail.CHDetailID   = Convert.ToInt64(FirstDigit + "" + OtherDigits);//nextQCDetailId;
                            objchDetail.CHID         = NextId;
                            objchDetail.AditionalQty = sdtl.AditionalQty;
                            objchDetail.DisAmount    = sdtl.DisAmount;
                            objchDetail.IsPercent    = sdtl.IsPercent;
                            objchDetail.TotalAmount  = sdtl.TotalAmount;

                            objchDetail.ItemID        = sdtl.ItemID;
                            objchDetail.BatchID       = sdtl.BatchID;
                            objchDetail.GrossWeight   = sdtl.GrossWeight;
                            objchDetail.LotID         = sdtl.LotID;
                            objchDetail.NetWeight     = sdtl.NetWeight;
                            objchDetail.PackingQty    = sdtl.PackingQty;
                            objchDetail.PackingUnitID = sdtl.PackingUnitID;
                            objchDetail.UnitID        = sdtl.UnitID;
                            objchDetail.UnitPrice     = sdtl.UnitPrice;
                            objchDetail.WeightUnitID  = sdtl.WeightUnitID;
                            objchDetail.Qty           = sdtl.Qty;
                            objchDetail.IsDeleted     = false;
                            objchDetail.Amount        = sdtl.Amount;
                            objchDetail.UnitID        = sdtl.UnitID;
                            objchDetail.CreateBy      = chMaster.CreateBy;
                            objchDetail.CreateOn      = DateTime.Now;
                            objchDetail.CreatePc      = HostService.GetIP();
                            // objSalPIDetail.IsCICompleted = false;
                            lstchDetail.Add(objchDetail);
                            //nextQCDetailId++;
                            OtherDigits++;

                            // InvGrrDetail objInvGrrDetail = (from grrd in _ctxCmn.InvGrrDetails.Where(m => m.GrrID == qcMaster.GrrID && m.ItemID == sdtl.ItemID) select grrd).FirstOrDefault();
                            // objInvGrrDetail.QcRemainingQty = objInvGrrDetail.QcRemainingQty - (sdtl.PassQty + sdtl.RejectQty);
                        }

                        _ctxCmn.InvRChallanMasters.Add(chMaster);

                        //............Update MaxID.................//
                        GenericFactory_EF_CmnCombo.updateMaxID("InvRChallanMaster", Convert.ToInt64(NextId));
                        //............Update CustomCode.............//
                        GenericFactory_EF_CmnCombo.updateCustomCode(menuID, DateTime.Now, chMaster.CompanyID ?? 1, 1, 1);
                        _ctxCmn.InvRChallanDetails.AddRange(lstchDetail);

                        //............Update MaxID.................//
                        GenericFactory_EF_CmnCombo.updateMaxID("InvRChallanDetail", Convert.ToInt64(FirstDigit + "" + (OtherDigits - 1)));
                        _ctxCmn.SaveChanges();

                        transaction.Complete();
                        result = newChNo;
                    }
                    catch (Exception e)
                    {
                        result = "";
                    }
                }
            }
            return(result);
        }