Exemple #1
0
        public ActionResult SaveModelData(tblMachinePartsQuotation model, string create = null)
        {
            if (!ModelState.IsValid)
            {
                return(View("Create", model));
            }

            string message = string.Empty;

            try
            {
                if (model.QuotationAmount.HasValue)
                {
                    model.QuotationAmountInWords = CurrencyHelper.changeCurrencyToWords(model.QuotationAmount.Value);
                }

                if (model.MachinePartsQuotationId > 0)
                {
                    model.ModifiedBy   = SessionHelper.UserId;
                    model.ModifiedDate = DateTime.Now;
                    message            = _dbRepository.Update(model);
                }
                else
                {
                    model.CreatedBy   = SessionHelper.UserId;
                    model.CreatedDate = DateTime.Now;
                    message           = _dbRepository.Insert(model);
                }
            }
            catch (Exception ex)
            {
                message = CommonHelper.GetErrorMessage(ex);
            }

            if (model.MachinePartsQuotationId > 0)
            {
                if (create == "Save & Continue")
                {
                    return(RedirectToAction("Edit", new { id = model.MachinePartsQuotationId }));
                }
                else if (create == "Save & New")
                {
                    return(RedirectToAction("Create"));
                }
            }
            return(RedirectToAction("Index"));
        }
        public ActionResult GeneratePartsQuotation(int CommisionId)
        {
            tblCommissioning commissioningObj = _dbRepository.SelectById(CommisionId);

            if (commissioningObj != null)
            {
                tblCustomerContactPersons contactPerson = _dbRepositoryContact.SelectById(commissioningObj.ContactPersonId);
                tblMachinePartsQuotation  quotationObj  = new tblMachinePartsQuotation();
                quotationObj.CustomerId                = commissioningObj.CustomerId;
                quotationObj.CustomerContactPId        = commissioningObj.ContactPersonId;
                quotationObj.CustomerContactPContactNo = contactPerson.ContactNo;
                quotationObj.Email             = contactPerson.ContactPersonEmail;
                quotationObj.QuotationDate     = DateTime.Now.Date;
                quotationObj.ReportServiceNo   = commissioningObj.ReportServiceNo;
                quotationObj.ServiceEngineerId = commissioningObj.ServiceEngineerId;
                quotationObj.InquiryNo         = String.Empty;
                quotationObj.InquiryDate       = DateTime.Now.Date;
                quotationObj.PaymentTerms      = String.Empty;
                quotationObj.DeliveryWeeks     = 0;
                quotationObj.FreightAmount     = 0;
                quotationObj.TotalFinalAmount  = 0;
                quotationObj.QuotationAmount   = 0;
                quotationObj.Insurance         = String.Empty;
                quotationObj.ValidityDays      = 0;
                quotationObj.CreatedBy         = SessionHelper.UserId;
                quotationObj.CreatedDate       = DateTime.Now.Date;
                quotationObj.IsPIGenerated     = false;

                string result = _dbRepositoryPartsQ.Insert(quotationObj);
                if (string.IsNullOrEmpty(result))
                {
                    return(RedirectToAction("Edit", "MachinePartsQuotation", new { id = quotationObj.MachinePartsQuotationId }));
                }
            }
            return(RedirectToAction("Edit", "Commissioning", new { id = CommisionId }));
        }
Exemple #3
0
        public ActionResult GeneratePIFromQuotation(int QuotationId, string SelectedIds = null)
        {
            if (QuotationId > 0)
            {
                tblMachinePartsQuotation quotationObj = _dbRepository.SelectById(QuotationId);
                if (quotationObj != null)
                {
                    List <int> selectedIDs = new List <int>();
                    List <tblMachinePartsQuotationDetail> detailObj = new List <tblMachinePartsQuotationDetail>();
                    if (!string.IsNullOrEmpty(SelectedIds))
                    {
                        selectedIDs = SelectedIds.Split(',').Select(int.Parse).ToList();
                    }
                    else
                    {
                        selectedIDs = _dbRepositoryDetail.GetEntities().Where(m => m.MachinePartsQuotationId == QuotationId).Select(m => m.MPQDetailId).ToList();
                    }

                    if (selectedIDs.Count > 0)
                    {
                        foreach (int id in selectedIDs)
                        {
                            tblMachinePartsQuotationDetail obj = _dbRepositoryDetail.SelectById(id);
                            detailObj.Add(obj);
                        }
                        if (detailObj.Count > 0)
                        {
                            tblPerformaInvoice invoiceObj = new tblPerformaInvoice();
                            invoiceObj.MPQuotationId             = quotationObj.MachinePartsQuotationId;
                            invoiceObj.QuotationNo               = quotationObj.QuotationNo;
                            invoiceObj.QuotationDate             = quotationObj.QuotationDate;
                            invoiceObj.CustomerId                = quotationObj.CustomerId;
                            invoiceObj.CustomerContactPId        = quotationObj.CustomerContactPId;
                            invoiceObj.CustomerContactPContactNo = quotationObj.CustomerContactPContactNo;
                            invoiceObj.ReportServiceNo           = quotationObj.ReportServiceNo;
                            invoiceObj.InquiryNo          = quotationObj.InquiryNo;
                            invoiceObj.InquiryDate        = quotationObj.InquiryDate;
                            invoiceObj.PaymentTerms       = quotationObj.PaymentTerms;
                            invoiceObj.DeliveryWeeks      = quotationObj.DeliveryWeeks;
                            invoiceObj.Insurance          = quotationObj.Insurance;
                            invoiceObj.ValidityDays       = quotationObj.ValidityDays;
                            invoiceObj.Email              = quotationObj.Email;
                            invoiceObj.TotalFinalAmount   = quotationObj.TotalFinalAmount;
                            invoiceObj.FreightAmount      = quotationObj.FreightAmount;
                            invoiceObj.QuotationAmount    = quotationObj.QuotationAmount;
                            invoiceObj.TotalFreightAmount = quotationObj.TotalFreightAmount;
                            invoiceObj.ServiceEngineerId  = quotationObj.ServiceEngineerId;
                            invoiceObj.FreightPercentage  = quotationObj.FreightPercentage;
                            invoiceObj.Remarks            = quotationObj.Remarks;
                            invoiceObj.SequenceNo         = quotationObj.SequenceNo;
                            invoiceObj.CreatedBy          = SessionHelper.UserId;
                            invoiceObj.CreatedDate        = DateTime.Now;
                            string result = _dbRepositoryPI.Insert(invoiceObj);
                            if (string.IsNullOrEmpty(result))
                            {
                                foreach (tblMachinePartsQuotationDetail obj in detailObj)
                                {
                                    tblPerformaInvoiceDetail piDetailObj = new tblPerformaInvoiceDetail();
                                    piDetailObj.PerformaInvoiceId      = invoiceObj.PerformaInvoiceId;
                                    piDetailObj.MPQDetailId            = obj.MPQDetailId;
                                    piDetailObj.MachineTypeId          = obj.MachineTypeId;
                                    piDetailObj.MachineModelId         = obj.MachineModelId;
                                    piDetailObj.MachineModelSerialNo   = obj.MachineModelSerialNo;
                                    piDetailObj.MachinePartsId         = obj.MachinePartsId;
                                    piDetailObj.MachinePartsNo         = obj.MachinePartsNo;
                                    piDetailObj.MachinePartDescription = obj.MachinePartDescription;
                                    piDetailObj.PartsHSNCode           = obj.PartsHSNCode;
                                    piDetailObj.PartsQuantity          = obj.PartsQuantity;
                                    piDetailObj.UnitPrice              = obj.UnitPrice;
                                    piDetailObj.TotalPrice             = obj.TotalPrice;
                                    piDetailObj.PAndFPercentage        = obj.PAndFPercentage;
                                    piDetailObj.ProfitMarginPercentage = obj.ProfitMarginPercentage;
                                    piDetailObj.DiscountPercentage     = obj.DiscountPercentage;
                                    piDetailObj.TaxablePrice           = obj.TaxablePrice;
                                    piDetailObj.GSTPercentage          = obj.GSTPercentage;
                                    piDetailObj.GSTAmount              = obj.GSTAmount;
                                    piDetailObj.FinalAmount            = obj.FinalAmount;
                                    piDetailObj.CreatedBy              = SessionHelper.UserId;
                                    piDetailObj.CreatedDate            = DateTime.Now;

                                    _dbRepositoryPIDetail.Insert(piDetailObj);
                                }

                                quotationObj.IsPIGenerated = true;
                                _dbRepository.Update(quotationObj);

                                return(RedirectToAction("Edit", "PI", new { id = invoiceObj.PerformaInvoiceId }));
                            }
                        }
                    }
                    else
                    {
                        TempData["Error"] = "There are no products to quoatation details. So please add products first.";
                        return(View("Index"));
                    }
                }
            }
            TempData["Error"] = "Something Went Wrong. Please try again later!";
            return(View("Index"));
        }