示例#1
0
        public string SaveQuotationMasterDetails(PurchaseQuotationMaster QuotationMaster, List <PurchaseQuotationDetail> QuotationDetails, int menuID)
        {
            //Declerations
            string result = string.Empty; string customCode = string.Empty; string CustomNo = string.Empty;
            int    RequisitionID = Convert.ToInt32(QuotationMaster.QuotationID), SDetailRowNum = 0, UDetailRowNum = 0;
            long   FirstDigit = 0, OtherDigits = 0, nextDetailId = 0; int NextId = 0;

            GenericFactory_EF_QuotationMaster = new PurchaseQuotationMaster_EF();
            GenericFactory_EF_QuotationDetail = new PurchaseQuotationDetail_EF();
            List <PurchaseQuotationDetail> objRqDetails = new List <PurchaseQuotationDetail>();
            List <InvRequisitionDetail>    SobjDetails = new List <InvRequisitionDetail>();

            //   SDetailRowNum = Convert.ToInt32(RequisitionDetails.Where(s => s.ModelState == "Save").Count());
            //   UDetailRowNum = Convert.ToInt32(RequisitionDetails.Where(s => s.ModelState == "Update").Count());
            try
            {
                using (_ctxCmn = new ERP_Entities())
                {
                    //Transaction Occur here************************************************
                    using (TransactionScope transaction = new TransactionScope())
                    {
                        if (RequisitionID > 0)
                        {
                            //**************Master Model************************************************
                            //var lstInvReqMaster = GenericFactory_EF_RequisitionMaster.GetAll().FirstOrDefault(x => x.RequisitionID == RequisitionID);
                            //lstInvReqMaster.UpdateBy = RequisitionMaster.CreateBy;
                            //lstInvReqMaster.UpdateOn = DateTime.Now;
                            //lstInvReqMaster.UpdatePc =  HostService.GetIP();
                            //lstInvReqMaster.RequisitionBy = RequisitionMaster.RequisitionBy;
                            //lstInvReqMaster.RequisitionDate = RequisitionMaster.RequisitionDate;
                            //lstInvReqMaster.Remarks = RequisitionMaster.Remarks;
                            //lstInvReqMaster.Purpose = RequisitionMaster.Purpose;

                            ////*************Details Model************************************************
                            //if (UDetailRowNum > 0)
                            //{
                            //    foreach (vmRequisitionDetails ivrd in RequisitionDetails.Where(x => x.ModelState == "Update"))
                            //    {
                            //        InvRequisitionDetail objRequisitionDetail = GenericFactory_EF_RequisitionDetail.GetAll().FirstOrDefault(x => x.RequisitionID == RequisitionID && x.RequisitionDetailID == ivrd.RequisitionDetailID);
                            //        objRequisitionDetail.Qty = ivrd.Qty;
                            //        objRequisitionDetail.UpdateBy = RequisitionMaster.CreateBy;
                            //        objRequisitionDetail.UpdateOn = DateTime.Now;
                            //        objRequisitionDetail.UpdatePc =  HostService.GetIP();
                            //        objRqDetails.Add(objRequisitionDetail);
                            //    }
                            //}
                            //if (SDetailRowNum > 0)
                            //{
                            //    nextDetailId = Convert.ToInt64(GenericFactory_EF_RequisitionDetail.getMaxID("InvRequisitionDetail"));
                            //    FirstDigit = Convert.ToInt64(nextDetailId.ToString().Substring(0, 1));
                            //    OtherDigits = Convert.ToInt64(nextDetailId.ToString().Substring(1, nextDetailId.ToString().Length - 1));
                            //    foreach (vmRequisitionDetails ivrd in RequisitionDetails.Where(x => x.ModelState == "Save"))
                            //    {
                            //        InvRequisitionDetail objRequisitionDetail = new InvRequisitionDetail();
                            //        objRequisitionDetail.RequisitionDetailID = Convert.ToInt64(FirstDigit + "" + OtherDigits);
                            //        objRequisitionDetail.RequisitionID = RequisitionMaster.RequisitionID;
                            //        objRequisitionDetail.ItemID = ivrd.ItemID;
                            //        objRequisitionDetail.UnitID = (int)ivrd.UnitID;
                            //        objRequisitionDetail.LotID = ivrd.LotID;
                            //        objRequisitionDetail.BatchID = ivrd.BatchID;
                            //        objRequisitionDetail.Qty = ivrd.Qty;
                            //        objRequisitionDetail.UnitPrice = ivrd.UnitPrice;
                            //        objRequisitionDetail.Amount = ivrd.Amount;
                            //        objRequisitionDetail.CreateBy = RequisitionMaster.CreateBy;
                            //        objRequisitionDetail.CreateOn = DateTime.Now;
                            //        objRequisitionDetail.IsDeleted = false;
                            //        objRequisitionDetail.CreatePc =  HostService.GetIP();
                            //        SobjDetails.Add(objRequisitionDetail);
                            //        OtherDigits++;
                            //    }
                            //}


                            ////RequisitionID
                            ////**************Master Transaction Update************************************************
                            //if (lstInvReqMaster != null)
                            //{
                            //    GenericFactory_EF_RequisitionMaster.Update(lstInvReqMaster);
                            //    GenericFactory_EF_RequisitionMaster.Save();
                            //}
                            ////RequisitionDetailID
                            //// **************Details Transaction Update************************************************
                            //if (objRqDetails.Count != 0)
                            //{
                            //    GenericFactory_EF_RequisitionDetail.UpdateList(objRqDetails);
                            //    GenericFactory_EF_RequisitionDetail.Save();
                            //}
                            //if (SobjDetails.Count != 0)
                            //{
                            //    GenericFactory_EF_RequisitionDetail.InsertList(SobjDetails);
                            //    GenericFactory_EF_RequisitionDetail.Save();
                            //    GenericFactory_EF_RequisitionDetail.updateMaxID("InvRequisitionDetail", Convert.ToInt64(FirstDigit + "" + (OtherDigits - 1)));
                            //}

                            ////**************Commit Transaction************************************************
                            //// _ctxCmn.SaveChanges();
                            //transaction.Complete();
                            //result = customCode;
                        }
                        else
                        {
                            //Initialisation ************************************************
                            NextId       = Convert.ToInt16(GenericFactory_EF_QuotationMaster.getMaxID("PurchaseQuotationMaster"));
                            nextDetailId = Convert.ToInt64(GenericFactory_EF_QuotationDetail.getMaxID("PurchaseQuotationDetail"));
                            FirstDigit   = Convert.ToInt64(nextDetailId.ToString().Substring(0, 1));
                            OtherDigits  = Convert.ToInt64(nextDetailId.ToString().Substring(1, nextDetailId.ToString().Length - 1));
                            CustomNo     = GenericFactory_EF_QuotationMaster.getCustomCode(menuID, Convert.ToDateTime(QuotationMaster.QuotationDate), QuotationMaster.CompanyID, 1, 1); // QuotationMaster.CompanyID

                            if ((customCode != "") || (customCode != null))
                            {
                                customCode = CustomNo;
                            }
                            else
                            {
                                customCode = NextId.ToString();
                            }
                            //**************Master Model************************************************
                            QuotationMaster.QuotationID = NextId;
                            QuotationMaster.CreateOn    = DateTime.Now;
                            QuotationMaster.CreatePc    = HostService.GetIP();
                            QuotationMaster.QuotationNo = customCode;

                            //*************Details Model************************************************
                            foreach (PurchaseQuotationDetail ivrd in QuotationDetails)
                            {
                                PurchaseQuotationDetail objDetail = new PurchaseQuotationDetail();
                                objDetail.QuotationDetailID = Convert.ToInt64(FirstDigit + "" + OtherDigits);
                                objDetail.QuotationID       = NextId;
                                objDetail.ItemID            = ivrd.ItemID;
                                objDetail.UnitID            = (int)ivrd.UnitID;
                                objDetail.Qty                 = ivrd.Qty;
                                objDetail.UnitPrice           = ivrd.UnitPrice;
                                objDetail.Amount              = ivrd.Amount;
                                objDetail.FOBValue            = ivrd.FOBValue;
                                objDetail.TransportTypeID     = ivrd.TransportTypeID;
                                objDetail.FreightCharge       = ivrd.FreightCharge;
                                objDetail.DischargeLocationID = ivrd.DischargeLocationID;
                                objDetail.LoadingLocationID   = ivrd.LoadingLocationID;
                                objDetail.CreateBy            = QuotationMaster.CreateBy;
                                objDetail.CreateOn            = DateTime.Now;
                                objDetail.IsDeleted           = false;
                                objDetail.CreatePc            = HostService.GetIP();
                                objRqDetails.Add(objDetail);
                                OtherDigits++;
                            }

                            //QuotationID
                            //**************Master Transaction Save************************************************
                            _ctxCmn.PurchaseQuotationMasters.Add(QuotationMaster);

                            //QuotationIDDetailID
                            //**************Details Transaction Save************************************************
                            _ctxCmn.PurchaseQuotationDetails.AddRange(objRqDetails);
                            _ctxCmn.SaveChanges();

                            //**************Reset Transaction************************************************
                            GenericFactory_EF_QuotationMaster.updateMaxID("PurchaseQuotationMaster", Convert.ToInt64(NextId));
                            GenericFactory_EF_QuotationMaster.updateCustomCode(menuID, DateTime.Now, 1, 1, 1);              // QuotationMaster.CompanyID
                            GenericFactory_EF_QuotationDetail.updateMaxID("PurchaseQuotationDetail", Convert.ToInt64(FirstDigit + "" + (OtherDigits - 1)));

                            //**************Commit Transaction************************************************
                            transaction.Complete();
                            result = customCode;
                        }
                    }
                }
            }
            catch (Exception)
            {
                result = "-1";
            }

            return(result);
        }
        /// <summary>
        /// This method is used to add or edit purchase quotation
        /// </summary>
        /// <param name="quotationData"></param>
        /// <returns></returns>
        public int AddUpdateQuotation(PurchaseQuotationForm quotationData)
        {
            int autoId = 0;
            //Add purchase quotation
            PurchaseQuotation obj = new PurchaseQuotation();

            obj.ID            = quotationData.Quotation.ID;
            obj.Sup_Id        = quotationData.Quotation.SupplierID;
            obj.PQ_Conv_to_PO = quotationData.Quotation.PQ_Conv_to_PO;
            obj.PQ_Conv_to_PI = quotationData.Quotation.PQ_Conv_to_PI;
            //obj.PQ_Date = quotationData.Quotation.QuotationDate;
            obj.PQ_Date        = quotationData.Quotation.QuotationDate;
            obj.PQ_GST_Amt     = Convert.ToDecimal(quotationData.Quotation.TotalTax);
            obj.PQ_No          = quotationData.Quotation.QuotationNo;
            obj.PQ_TandC       = quotationData.Quotation.TermsAndConditions;
            obj.PQ_Tot_aft_Tax = Convert.ToDecimal(quotationData.Quotation.TotalAfterTax);
            obj.PQ_Tot_bef_Tax = Convert.ToDecimal(quotationData.Quotation.TotalBeforeTax);
            obj.PQ_Valid_for   = quotationData.Quotation.ValidForDays;
            obj.Exc_Inc_GST    = quotationData.Quotation.ExcIncGST;
            obj.IsDeleted      = false;

            try
            {
                using (SASEntitiesEDM entities = new SASEntitiesEDM())
                {
                    if (entities.PurchaseQuotations.AsNoTracking().FirstOrDefault(x => x.ID == quotationData.Quotation.ID) == null)
                    {
                        //obj.CreatedBy = quotationData.PQModel.CreatedBy;
                        obj.CreatedDate = DateTime.Now;
                        entities.PurchaseQuotations.Add(obj);
                        entities.SaveChanges();
                        autoId = obj.ID;
                    }
                    else
                    {
                        // obj.ModifiedBy = quotationData.PQModel.ModifiedBy;
                        obj.ModifiedDate          = DateTime.Now;
                        entities.Entry(obj).State = EntityState.Modified;
                        autoId = entities.SaveChanges();
                    }
                    if (autoId > 0)
                    {
                        PurchaseQuotationDetail PQDetails;
                        if (quotationData.QuotationDetails != null)
                        {
                            foreach (PurchaseQuotationDetailEntity PQDetailEntity in quotationData.QuotationDetails)
                            {
                                PQDetails             = new PurchaseQuotationDetail();
                                PQDetails.PQ_ID       = autoId;
                                PQDetails.PQ_No       = PQDetailEntity.PQNo;
                                PQDetails.PandS_Code  = PQDetailEntity.PandSCode;
                                PQDetails.PandS_Name  = PQDetailEntity.PandSName;
                                PQDetails.PQ_Amount   = PQDetailEntity.PQAmount;
                                PQDetails.PQ_Discount = PQDetailEntity.PQDiscount;
                                PQDetails.PQ_No       = PQDetailEntity.PQNo;
                                PQDetails.PQ_Price    = Convert.ToDecimal(PQDetailEntity.PQPrice);
                                PQDetails.PQ_Qty      = PQDetailEntity.PQQty;
                                PQDetails.GST_Code    = PQDetailEntity.GSTCode;
                                PQDetails.GST_Rate    = PQDetailEntity.GSTRate;

                                if (entities.PurchaseQuotationDetails.AsNoTracking().FirstOrDefault(x => x.ID == PQDetailEntity.ID) == null)
                                {
                                    entities.PurchaseQuotationDetails.Add(PQDetails);
                                    entities.SaveChanges();
                                }
                                else
                                {
                                    entities.Entry(PQDetails).State = EntityState.Modified;
                                    entities.SaveChanges();
                                }
                            }
                        }
                    }
                }
                return(autoId);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#3
0
        private void Controller_ObjectCreated(object sender, ObjectCreatedEventArgs e)
        {
            ListView lv = ((ListView)View);

            if (lv.CollectionSource is PropertyCollectionSource)
            {
                PropertyCollectionSource collectionSource = (PropertyCollectionSource)lv.CollectionSource;
                if (collectionSource.MasterObject != null)
                {
                    int minvalue    = 0;
                    int maxvisorder = 0;

                    if (collectionSource.MasterObjectType == typeof(StockTransferRequest) && e.CreatedObject.GetType() == typeof(StockTransferRequestDetail))
                    {
                        StockTransferRequest       masterobject  = (StockTransferRequest)collectionSource.MasterObject;
                        StockTransferRequestDetail currentobject = (StockTransferRequestDetail)e.CreatedObject;

                        copyCon.GetStockDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;

                        if (sDtlS != null)
                        {
                            copyCon.copyClassStockTransferDocumentDetail(sDtlS, currentobject, e.ObjectSpace);
                        }
                    }
                    else if (collectionSource.MasterObjectType == typeof(PurchaseOrder))
                    {
                        PurchaseOrder       masterobject  = (PurchaseOrder)collectionSource.MasterObject;
                        PurchaseOrderDetail currentobject = (PurchaseOrderDetail)e.CreatedObject;

                        copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;
                        currentobject.DocCur   = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey);

                        if (sDtl != null)
                        {
                            copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace);
                        }
                    }
                    else if (collectionSource.MasterObjectType == typeof(PurchaseRequest))
                    {
                        PurchaseRequest       masterobject  = (PurchaseRequest)collectionSource.MasterObject;
                        PurchaseRequestDetail currentobject = (PurchaseRequestDetail)e.CreatedObject;

                        copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;

                        if (masterobject.DocCur != null)
                        {
                            currentobject.DocCur = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey);
                        }

                        if (sDtl != null)
                        {
                            copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace);
                        }
                    }
                    else if (collectionSource.MasterObjectType == typeof(PurchaseDelivery))
                    {
                        PurchaseDelivery       masterobject  = (PurchaseDelivery)collectionSource.MasterObject;
                        PurchaseDeliveryDetail currentobject = (PurchaseDeliveryDetail)e.CreatedObject;

                        copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;

                        if (masterobject.DocCur != null)
                        {
                            currentobject.DocCur = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey);
                        }

                        if (sDtl != null)
                        {
                            copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace);
                        }
                    }
                    else if (collectionSource.MasterObjectType == typeof(PurchaseReturn))
                    {
                        PurchaseReturn       masterobject  = (PurchaseReturn)collectionSource.MasterObject;
                        PurchaseReturnDetail currentobject = (PurchaseReturnDetail)e.CreatedObject;

                        copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;

                        if (masterobject.DocCur != null)
                        {
                            currentobject.DocCur = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey);
                        }

                        if (sDtl != null)
                        {
                            copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace);
                        }
                    }
                    else if (collectionSource.MasterObjectType == typeof(PurchaseQuotation))
                    {
                        PurchaseQuotation       masterobject  = (PurchaseQuotation)collectionSource.MasterObject;
                        PurchaseQuotationDetail currentobject = (PurchaseQuotationDetail)e.CreatedObject;

                        copyCon.GetDetailClassVisOrder(masterobject, ref minvalue, ref maxvisorder);

                        currentobject.Oid      = minvalue;
                        currentobject.VisOrder = maxvisorder;

                        if (masterobject.DocCur != null)
                        {
                            currentobject.DocCur = currentobject.Session.GetObjectByKey <vwCurrency>(masterobject.DocCur.BoKey);
                        }

                        if (sDtl != null)
                        {
                            copyCon.copyClassDocumentDetail(sDtl, currentobject, e.ObjectSpace);
                        }
                    }
                }
            }

            sDtl  = null;
            sDtlS = null;
        }
        public int UpdationQuotation(PurchaseQuotationForm quotationData)
        {
            try
            {
                using (SASEntitiesEDM entities = new SASEntitiesEDM())
                {
                    PurchaseQuotation obj = entities.PurchaseQuotations.Where(e => e.PQ_No == quotationData.Quotation.QuotationNo
                                                                              ).SingleOrDefault();
                    if (obj != null)
                    {
                        //obj.ID = quotationData.Quotation.ID;
                        obj.Sup_Id = quotationData.Quotation.SupplierID;
                        // obj.PQ_Conv_to_PO = quotationData.Quotation.PQ_Conv_to_PO;
                        // obj.PQ_Conv_to_PI = quotationData.Quotation.PQ_Conv_to_PI;
                        obj.PQ_Date        = Convert.ToDateTime(quotationData.Quotation.QuotationDateStr);
                        obj.PQ_GST_Amt     = Convert.ToDecimal(quotationData.Quotation.TotalTax);
                        obj.PQ_No          = quotationData.Quotation.QuotationNo;
                        obj.PQ_TandC       = quotationData.Quotation.TermsAndConditions;
                        obj.PQ_Tot_aft_Tax = Convert.ToDecimal(quotationData.Quotation.TotalAfterTax);
                        obj.PQ_Tot_bef_Tax = Convert.ToDecimal(quotationData.Quotation.TotalBeforeTax);
                        obj.PQ_Valid_for   = quotationData.Quotation.ValidForDays;
                        obj.Exc_Inc_GST    = quotationData.Quotation.ExcIncGST;
                        obj.ModifiedDate   = DateTime.Now;
                        entities.SaveChanges();
                    }

                    var objPurchase = entities.PurchaseQuotationDetails.Where
                                          (e => e.PQ_ID == obj.ID).ToList();
                    if (objPurchase != null)
                    {
                        foreach (var item in objPurchase)
                        {
                            entities.PurchaseQuotationDetails.Remove(item);
                            entities.SaveChanges();
                        }
                    }
                    PurchaseQuotationDetail PQDetails;
                    if (quotationData.QuotationDetails != null)
                    {
                        foreach (PurchaseQuotationDetailEntity PQDetailEntity in quotationData.QuotationDetails)
                        {
                            PQDetails             = new PurchaseQuotationDetail();
                            PQDetails.PQ_ID       = obj.ID;
                            PQDetails.PQ_No       = PQDetailEntity.PQNo;
                            PQDetails.PandS_Code  = PQDetailEntity.PandSCode;
                            PQDetails.PandS_Name  = PQDetailEntity.PandSName;
                            PQDetails.PQ_Amount   = PQDetailEntity.PQAmount;
                            PQDetails.PQ_Discount = PQDetailEntity.PQDiscount;
                            PQDetails.PQ_No       = PQDetailEntity.PQNo;
                            PQDetails.PQ_Price    = Convert.ToDecimal(PQDetailEntity.PQPrice);
                            PQDetails.PQ_Qty      = PQDetailEntity.PQQty;
                            PQDetails.GST_Code    = PQDetailEntity.GSTCode;
                            PQDetails.GST_Rate    = PQDetailEntity.GSTRate;

                            entities.PurchaseQuotationDetails.Add(PQDetails);
                            entities.SaveChanges();
                        }
                    }
                    return(obj.ID);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }