public ActionResult JobWorkPayment(MainApplication mainapp, FormCollection frmcol) { MainApplication model = new MainApplication() { JobWorkOutwardToClientDetails = new JobWorkOutwardToClient(), }; //CREATE JOB WORK PAYMENT CODE string year = FinancialYear; string[] yr = year.Split(' ', '-'); string FinYr = "/" + yr[2].Substring(2) + "-" + yr[6].Substring(2); string paymentcode = string.Empty; var jobworkpaymentdata = _JobWorkPaymentService.GetLastPaymentByFinYr(FinYr); int PaymentVal = 0; int length = 0; if (jobworkpaymentdata != null) { paymentcode = jobworkpaymentdata.PaymentCode.Substring(3, 6); length = (Convert.ToInt32(paymentcode) + 1).ToString().Length; PaymentVal = Convert.ToInt32(paymentcode) + 1; } else { PaymentVal = 1; length = 1; } paymentcode = _utilityService.getName("JWP", length, PaymentVal); paymentcode = paymentcode + FinYr; mainapp.JobWorkPaymentDetails.PaymentCode = paymentcode; //update previous job work payment status inactive.. var jobworkpaymentlist = _JobWorkPaymentService.GetRowsByOutwardNo(mainapp.JobWorkPaymentDetails.OutwardToTailorNo); foreach (var row in jobworkpaymentlist) { row.Status = "InActive"; _JobWorkPaymentService.Update(row); } //SAVE CASHIER RECEIVABLES PAYMENT DETAILS mainapp.JobWorkPaymentDetails.Cash_1000 = Convert.ToInt32(frmcol["JobWorkPaymentDetails.Cash_1000"]); mainapp.JobWorkPaymentDetails.Cash_500 = Convert.ToInt32(frmcol["JobWorkPaymentDetails.Cash_500"]); mainapp.JobWorkPaymentDetails.Cash_100 = Convert.ToInt32(frmcol["JobWorkPaymentDetails.Cash_100"]); mainapp.JobWorkPaymentDetails.Cash_50 = Convert.ToInt32(frmcol["JobWorkPaymentDetails.Cash_50"]); mainapp.JobWorkPaymentDetails.Cash_20 = Convert.ToInt32(frmcol["JobWorkPaymentDetails.Cash_20"]); mainapp.JobWorkPaymentDetails.Cash_10 = Convert.ToInt32(frmcol["JobWorkPaymentDetails.Cash_10"]); mainapp.JobWorkPaymentDetails.Cash_1 = Convert.ToDouble(frmcol["JobWorkPaymentDetails.Cash_1"]); mainapp.JobWorkPaymentDetails.Cash_1000_Amt = Convert.ToDouble(frmcol["Amt1"]); mainapp.JobWorkPaymentDetails.Cash_500_Amt = Convert.ToDouble(frmcol["Amt2"]); mainapp.JobWorkPaymentDetails.Cash_100_Amt = Convert.ToDouble(frmcol["Amt3"]); mainapp.JobWorkPaymentDetails.Cash_50_Amt = Convert.ToDouble(frmcol["Amt4"]); mainapp.JobWorkPaymentDetails.Cash_20_Amt = Convert.ToDouble(frmcol["Amt5"]); mainapp.JobWorkPaymentDetails.Cash_10_Amt = Convert.ToDouble(frmcol["Amt6"]); mainapp.JobWorkPaymentDetails.Cash_1_Amt = Convert.ToDouble(frmcol["Amt7"]); mainapp.JobWorkPaymentDetails.TotalCash = Convert.ToDouble(frmcol["JobWorkPaymentDetails.TotalCash"]); mainapp.JobWorkPaymentDetails.SelectedCard = frmcol["Card"]; mainapp.JobWorkPaymentDetails.CreditCardNo = frmcol["JobWorkPaymentDetails.CreditCardNo"]; if (frmcol["JobWorkPaymentDetails.CreditCardAmount"] == "") { mainapp.JobWorkPaymentDetails.CreditCardAmount = 0; mainapp.JobWorkPaymentDetails.HandoverCreditAmt = 0; } else { mainapp.JobWorkPaymentDetails.CreditCardAmount = Convert.ToDouble(frmcol["JobWorkPaymentDetails.CreditCardAmount"]); mainapp.JobWorkPaymentDetails.HandoverCreditAmt = Convert.ToDouble(frmcol["JobWorkPaymentDetails.CreditCardAmount"]); } mainapp.JobWorkPaymentDetails.CreditCardType = frmcol["JobWorkPaymentDetails.CreditCardType"]; mainapp.JobWorkPaymentDetails.CreditCardBank = frmcol["JobWorkPaymentDetails.CreditCardBank"]; mainapp.JobWorkPaymentDetails.DebitCardNo = frmcol["JobWorkPaymentDetails.DebitCardNo"]; mainapp.JobWorkPaymentDetails.DebitCardName = frmcol["JobWorkPaymentDetails.DebitCardName"]; mainapp.JobWorkPaymentDetails.DebitCardType = frmcol["JobWorkPaymentDetails.DebitCardType"]; mainapp.JobWorkPaymentDetails.DebitCardBank = frmcol["JobWorkPaymentDetails.DebitCardBank"]; if (frmcol["JobWorkPaymentDetails.DebitCardAmount"] == "") { mainapp.JobWorkPaymentDetails.DebitCardAmount = 0; mainapp.JobWorkPaymentDetails.HandoverDebitAmt = 0; } else { mainapp.JobWorkPaymentDetails.DebitCardAmount = Convert.ToDouble(frmcol["JobWorkPaymentDetails.DebitCardAmount"]); mainapp.JobWorkPaymentDetails.HandoverDebitAmt = Convert.ToDouble(frmcol["JobWorkPaymentDetails.DebitCardAmount"]); } mainapp.JobWorkPaymentDetails.ChequeNo = frmcol["JobWorkPaymentDetails.ChequeNo"]; mainapp.JobWorkPaymentDetails.ChequeAccNo = frmcol["JobWorkPaymentDetails.ChequeAccNo"]; if (frmcol["JobWorkPaymentDetails.ChequeAmount"] == "") { mainapp.JobWorkPaymentDetails.ChequeAmount = 0; mainapp.JobWorkPaymentDetails.HandoverChequeAmt = 0; } else { mainapp.JobWorkPaymentDetails.ChequeAmount = Convert.ToDouble(frmcol["JobWorkPaymentDetails.ChequeAmount"]); mainapp.JobWorkPaymentDetails.HandoverChequeAmt = Convert.ToDouble(frmcol["JobWorkPaymentDetails.ChequeAmount"]); } if (mainapp.JobWorkPaymentDetails.ChequeNo != null && mainapp.JobWorkPaymentDetails.ChequeNo != "") { mainapp.JobWorkPaymentDetails.ChequeDate = Convert.ToDateTime(frmcol["JobWorkPaymentDetails.ChequeDate"]); } else { mainapp.JobWorkPaymentDetails.ChequeDate = null; } mainapp.JobWorkPaymentDetails.ChequeBank = frmcol["JobWorkPaymentDetails.ChequeBank"]; mainapp.JobWorkPaymentDetails.ChequeBranch = frmcol["JobWorkPaymentDetails.ChequeBranch"]; var outwarddetails = _OutwardToTailorService.GetDetailsByCode(mainapp.JobWorkPaymentDetails.OutwardToTailorNo); mainapp.JobWorkPaymentDetails.OutwardToTailorDate = outwarddetails.Date; mainapp.JobWorkPaymentDetails.ClientName = outwarddetails.ClientName; mainapp.JobWorkPaymentDetails.ClientAddress = outwarddetails.ClientAddress; mainapp.JobWorkPaymentDetails.ClientContact = outwarddetails.ClientContact; mainapp.JobWorkPaymentDetails.ClientEmail = outwarddetails.ClientEmail; mainapp.JobWorkPaymentDetails.TailorName = outwarddetails.TailorName; mainapp.JobWorkPaymentDetails.TailorAddress = outwarddetails.TailorAddress; mainapp.JobWorkPaymentDetails.TailorContact = outwarddetails.TailorContact; mainapp.JobWorkPaymentDetails.TailorEmail = outwarddetails.TailorEmail; mainapp.JobWorkPaymentDetails.GrandTotal = outwarddetails.GrandTotal; mainapp.JobWorkPaymentDetails.AdvancePayment = outwarddetails.AdvancePayment; mainapp.JobWorkPaymentDetails.Balance = Convert.ToDouble(frmcol["BalanceVal"]); mainapp.JobWorkPaymentDetails.ItemsDeliveredStatus = frmcol["Delivered"]; var username = HttpContext.Session["UserName"].ToString(); //IF EXCEPT SUPERADMIN LOGIN THEN SHOW SHOP OR GODOWN if (username != "SuperAdmin") { mainapp.JobWorkPaymentDetails.ShopCode = Session["LOGINSHOPGODOWNCODE"].ToString(); mainapp.JobWorkPaymentDetails.ShopName = Session["SHOPGODOWNNAME"].ToString(); } else { mainapp.JobWorkPaymentDetails.ShopCode = "SuperAdmin"; mainapp.JobWorkPaymentDetails.ShopName = "SuperAdmin"; } mainapp.JobWorkPaymentDetails.Date = DateTime.Now; mainapp.JobWorkPaymentDetails.Status = "Active"; mainapp.JobWorkPaymentDetails.ModifiedOn = DateTime.Now; //SAVE HANDOVER STATUS if (mainapp.JobWorkPaymentDetails.CreditCardAmount == 0 && mainapp.JobWorkPaymentDetails.DebitCardAmount == 0 && mainapp.JobWorkPaymentDetails.ChequeAmount == 0) { mainapp.JobWorkPaymentDetails.HandoverStatus = "InActive"; } else { mainapp.JobWorkPaymentDetails.HandoverStatus = "Active"; } _JobWorkPaymentService.Create(mainapp.JobWorkPaymentDetails); //UPDATE OUTWARD TO TAILOR PAYMENT AND BALANCE AFTER CASHIER PAYMENT var OutwardToTailorData = _OutwardToTailorService.GetDetailsByCode(mainapp.JobWorkPaymentDetails.OutwardToTailorNo); OutwardToTailorData.AdvancePayment = OutwardToTailorData.AdvancePayment + mainapp.JobWorkPaymentDetails.Payment; OutwardToTailorData.Balance = mainapp.JobWorkPaymentDetails.Balance; if (OutwardToTailorData.Balance <= 0) { OutwardToTailorData.Status = "InActive"; } _OutwardToTailorService.Update(OutwardToTailorData); //UPDATE OUTWARD TO TAILOR ITEM INACTIVE AFTER CASHIER PAYMENT if (OutwardToTailorData.Balance <= 0) { var OutwardToTailorItemData = _OutwardToTailorItemService.GetRowsByCode(mainapp.JobWorkPaymentDetails.OutwardToTailorNo); foreach (var data in OutwardToTailorItemData) { data.Status = "InActive"; _OutwardToTailorItemService.Update(data); } } if (frmcol["Delivered"] == "Yes") { //IF DELIVERED STATUS IS YES THEN UPDATE JOB WORK STOCK var jobworkstockitems = _JobWorkStockService.GetRowsByOutwardNo(mainapp.JobWorkPaymentDetails.OutwardToTailorNo); foreach (var item in jobworkstockitems) { item.Status = "InActive"; _JobWorkStockService.Update(item); //IF DELIVERED STATUS IS YES THEN ADD THIS STOCK IN JUOB WORK OUTWARD TO CLIENT model.JobWorkOutwardToClientDetails.OutwardToTailorNo = mainapp.JobWorkPaymentDetails.OutwardToTailorNo; model.JobWorkOutwardToClientDetails.PaymentCode = mainapp.JobWorkPaymentDetails.PaymentCode; model.JobWorkOutwardToClientDetails.ClientName = mainapp.JobWorkPaymentDetails.ClientName; model.JobWorkOutwardToClientDetails.TailorName = mainapp.JobWorkPaymentDetails.TailorName; model.JobWorkOutwardToClientDetails.ItemName = item.ItemName; model.JobWorkOutwardToClientDetails.Quantity = item.Quantity; model.JobWorkOutwardToClientDetails.Narration = item.Narration; model.JobWorkOutwardToClientDetails.ShopCode = mainapp.JobWorkPaymentDetails.ShopCode; model.JobWorkOutwardToClientDetails.ShopName = mainapp.JobWorkPaymentDetails.ShopName; model.JobWorkOutwardToClientDetails.Status = "Active"; model.JobWorkOutwardToClientDetails.ModifiedOn = DateTime.Now; _JobWorkOutwardToClientService.Create(model.JobWorkOutwardToClientDetails); } } return(RedirectToAction("JobWorkPayment")); }