protected void lkb_Click(object sender, EventArgs e) { try { LinkButton lkb = (LinkButton)sender; int count = 0; List <clsMessageAttribute> invAttributes = new List <clsMessageAttribute>(); List <string> mailsToList = new List <string>(); List <string> invID = new List <string>(); foreach (ListViewDataItem item in lvRegularInvoice.Items) { string auditTrailID = lvRegularInvoice.DataKeys[item.DisplayIndex].Values["AuditTrailID"].ToString(); //string invoiceID = lvInvoices.DataKeys[item.DisplayIndex].Values["InvoiceID"].ToString(); Int64 invoiceID = Convert.ToInt64(lvRegularInvoice.DataKeys[item.DisplayIndex].Values["InvoiceID"].ToString()); CheckBox chk = (CheckBox)item.FindControl("chkSelect"); if (chk.Checked) { clsMessageAttribute attribute = new clsMessageAttribute(); var invoiceDetail = unitOfWork.InvoiceRepository.Find(f => f.InvoiceID == invoiceID); Int64 id = Convert.ToInt64(auditTrailID); // int invoiceid = Convert.ToInt32(audittrail.InvoiceID); var itemAudit = unitOfWork.InvoiceAuditTrailRepositry.Find(f => f.AuditTrailID == id); itemAudit.ReceiverInvoiceAction = (byte)(EnumConstants.InvoiceActionAuditTrail)Enum.Parse(typeof(EnumConstants.InvoiceActionAuditTrail), lkb.CommandName); itemAudit.UpdatedDate = DateTime.Now; itemAudit.UpdatedBy = Common.LoggedInUserID();; unitOfWork.InvoiceAuditTrailRepositry.Update(itemAudit); unitOfWork.Save(); count = count + 1; if (!mailsToList.Contains(invoiceDetail.AspNetUser.Email)) { mailsToList.Add(invoiceDetail.AspNetUser.Email); } attribute.UserName = invoiceDetail.AspNetUser.OrganizationName; //attribute.MailsTo.Add(); //attribute.InvoiceNo = lvInvoices.DataKeys[item.DisplayIndex].Values["InvoiceNo"].ToString(); attribute.InvoiceDate = DateTimeAgo.GetFormatDate(invoiceDetail.InvoiceDate); attribute.InvoiceTotalAmount = invoiceDetail.GST_TRN_INVOICE_DATA.Sum(s => s.TotalAmountWithTax).ToString(); invAttributes.Add(attribute); //invID.Add(invoiceID); cls_PurchaseRegister register = new cls_PurchaseRegister(); if (lkb.CommandName == "Accept") { register.UpdatePurchaseDataItemFromInvoice(invoiceDetail); } } } if (count > 0) { string mailString = string.Empty; string sellerMail = string.Empty; clsMessageAttribute mailData = new clsMessageAttribute(); foreach (clsMessageAttribute iId in invAttributes) { //Int64 id = Convert.ToInt64(iId); //mailString += "<tr><td align='left' style='table-layout:auto'>" + iId.InvoiceNo.ToString() + "</td>"; mailString += "<tr><td align='middle' style='table-layout:auto'>" + iId.InvoiceDate.ToString() + "</td>"; mailString += "<td align='right' style='table-layout:auto'>" + iId.InvoiceTotalAmount.ToString() + "</td></tr>"; mailData.UserName = iId.UserName; } this.Master.SuccessMessage = count.ToString() + " Invoice " + lkb.CommandName + " successfully."; SendHTMLMail(mailData, mailString, String.Join(";", mailsToList.ToArray())); if (ViewState["CommandName"].ToString() != null) { PopulateInvoices(ViewState["CommandName"].ToString(), Convert.ToByte(uc_invoiceMonth.GetValue)); } invoiceItems.MisMatchInvoice(Common.LoggedInUserID()); //for refresh re-conciliation on accept or pending button //uc_sucess.Visible = true; ScriptManager.RegisterStartupScript(Page, Page.GetType(), "viewInvoiceModelSucessMessage", "$('#viewInvoiceModelSucessMessage').modal();", true); } else { this.Master.WarningMessage = "There are no invoices."; //uc_sucess.Visible = true; ScriptManager.RegisterStartupScript(Page, Page.GetType(), "viewInvoiceModelWarningMessage", "$('#viewInvoiceModelWarningMessage').modal();", true); //uc_sucess.SuccessMessage = "Data uploaded successfully."; // BindAllInvoices(); } } catch (Exception ex) { cls_ErrorLog ob = new cls_ErrorLog(); cls_ErrorLog.LogError(ex, Common.LoggedInUserID()); this.Master.ErrorMessage = ex.Message; //uc_sucess.Visible = true; ScriptManager.RegisterStartupScript(Page, Page.GetType(), "viewInvoiceModelErrorMessage", "$('#viewInvoiceModelErrorMessage').modal();", true); //uc_sucess.SuccessMessage = "Data uploaded successfully."; // BindAllInvoices(); } }
protected void lkbUpdateInvoice_Click(object sender, EventArgs e) { try { // GridView gv = (GridView)fvInvoice.FindControl("gvItems"); List <GST_TRN_INVOICE_DATA> items = GetGVData(); //var it = Invoice; if (Invoice != null) { GST_TRN_INVOICE inv = new GST_TRN_INVOICE(); inv.InvoiceDate = DateTime.Now; inv.InvoiceMonth = Convert.ToByte(DateTime.Now.Month); //var totalInv=unitOfWork.InvoiceRepository.Filter(f => f.SellerUserID == Invoice.AspNetUser.Id).Count();// is //var CurrentSrlNo = totalInv + 1; //if (Invoice.ParentInvoiceID == null) //{ inv.InvoiceNo = Invoice.InvoiceNo;// UniqueNoGenerate.RandomValue();//InvoiceOperation.InvoiceNo(Invoice.AspNetUser, Invoice.FinYear_ID.ToString(), CurrentSrlNo.ToString()); // } inv.SellerUserID = Invoice.SellerUserID; inv.ReceiverUserID = Invoice.ReceiverUserID; inv.ConsigneeUserID = Invoice.ConsigneeUserID; inv.OrderDate = Invoice.OrderDate; inv.VendorID = Invoice.VendorID; inv.TransShipment_ID = Invoice.TransShipment_ID; inv.Freight = Invoice.Freight; inv.Insurance = Invoice.Insurance; inv.PackingAndForwadingCharges = Invoice.PackingAndForwadingCharges; inv.ElectronicReferenceNo = Invoice.ElectronicReferenceNo; inv.ElectronicReferenceNoDate = Invoice.ElectronicReferenceNoDate; inv.InvoiceType = Invoice.InvoiceType; inv.FinYear_ID = Invoice.FinYear_ID; inv.IsInter = Invoice.IsInter; inv.ReceiverFinYear_ID = Invoice.ReceiverFinYear_ID; // inv.ParentInvoiceID = Invoice.InvoiceID; inv.TaxBenefitingState = Invoice.AspNetUser2.StateCode; inv.Status = true; // var invoicePeriod=unitOfWork.FinYearRepository.Find(f=>f.Fin_ID== Invoice.FinYear_ID).Finyear_Format; // GST_TRN_INVOICE updateInvoice = new GST_TRN_INVOICE(); inv.InvoiceStatus = Convert.ToByte(EnumConstants.InvoiceStatus.Fresh); inv.InvoiceSpecialCondition = Invoice.InvoiceSpecialCondition; inv.CreatedDate = DateTime.Now; inv.UpdatedDate = DateTime.Now; inv.CreatedBy = Common.LoggedInUserID(); inv.UpdatedBy = Common.LoggedInUserID(); cls_PurchaseRegister insertPurchaseRegsiter = new cls_PurchaseRegister(); insertPurchaseRegsiter.LoggedinUserID = Common.LoggedInUserID(); //-------------End-------- // bool isInter =InvoiceOperation.GetConsumptionDestinationOfGoodsOrServices(Invoice.AspNetUser.StateCode, Invoice.AspNetUser2.StateCode, Invoice.AspNetUser1.StateCode); bool isInter = Invoice.IsInter.Value; bool isStateExampted = unitOfWork.StateRepository.Find(f => f.StateCode == Invoice.AspNetUser2.StateCode).IsExempted.Value; // bool isExport = (Invoice.InvoiceSpecialCondition == (byte)EnumConstants.InvoiceSpecialCondition.Export || Invoice.InvoiceSpecialCondition == (byte)EnumConstants.InvoiceSpecialCondition.SEZDeveloper || Invoice.InvoiceSpecialCondition == (byte)EnumConstants.InvoiceSpecialCondition.SEZUnit || Invoice.InvoiceSpecialCondition == (byte)EnumConstants.InvoiceSpecialCondition.DeemedExport); bool isExported = false; if (Invoice.InvoiceSpecialCondition == (byte)EnumConstants.InvoiceSpecialCondition.Export || (byte)Invoice.InvoiceSpecialCondition == (byte)EnumConstants.InvoiceSpecialCondition.SEZDeveloper || Invoice.InvoiceSpecialCondition == (byte)EnumConstants.InvoiceSpecialCondition.SEZUnit || Invoice.InvoiceSpecialCondition == (byte)EnumConstants.InvoiceSpecialCondition.DeemedExport) { isExported = true; } bool isJobwork = (Invoice.InvoiceSpecialCondition == (byte)EnumConstants.InvoiceSpecialCondition.JobWork); bool isImport = (Invoice.InvoiceSpecialCondition == (byte)EnumConstants.InvoiceSpecialCondition.Import); var stateData = unitOfWork.StateRepository.Find(c => c.StateCode == Invoice.AspNetUser.StateCode); var isUTState = stateData.UT.Value; var isExempted = stateData.IsExempted.Value; var isEcom = false; var isUn = false; var invLineItem = from invo in items select new GST_TRN_INVOICE_DATA { // InvoiceID = invoiceCreate.InvoiceID, InvoiceDataID = invo.InvoiceDataID, LineID = invo.LineID, // GST_MST_ITEM = invo.Item, Item_ID = invo.GST_MST_ITEM.Item_ID, Qty = invo.Qty, Rate = invo.Rate, TotalAmount = invo.TotalAmount, Discount = invo.Discount, TaxableAmount = invo.TaxableAmount, IGSTRate = Calculate.TaxRate(invo.GST_MST_ITEM, isInter, isExported, isImport, isUTState, isJobwork, isEcom, isUn, EnumConstants.TaxType.IGST, invo.TaxableAmount.HasValue ? invo.TaxableAmount.Value : 0, invo.GST_MST_ITEM.IGST.Value), //isJobwork ? 0 : (isUTState ? 0 : (isInter ? invo.Item.IGST : (isExport ? invo.Item.IGST : (isImport ? invo.Item.IGST : 0)))), IGSTAmt = Calculate.TaxCalculate(invo.GST_MST_ITEM, isInter, isExported, isImport, isUTState, isJobwork, isEcom, isUn, EnumConstants.TaxType.IGST, invo.TaxableAmount.HasValue ? invo.TaxableAmount.Value : 0, invo.GST_MST_ITEM.IGST.Value), // isJobwork ? 0 : (isUTState ? 0 : (isInter ? Calculate.CalculateIGSTLineIDWise(invo.TaxableValueLineIDWise, invo.Item.IGST.Value) : (isExport ? Calculate.CalculateIGSTLineIDWise(invo.TaxableValueLineIDWise, invo.Item.IGST.Value) : (isImport ? Calculate.CalculateIGSTLineIDWise(invo.TaxableValueLineIDWise, invo.Item.IGST.Value) : 0)))), CGSTRate = Calculate.TaxRate(invo.GST_MST_ITEM, isInter, isExported, isImport, isUTState, isJobwork, isEcom, isUn, EnumConstants.TaxType.CGST, invo.TaxableAmount.HasValue ? invo.TaxableAmount.Value : 0, invo.GST_MST_ITEM.CGST.Value), CGSTAmt = Calculate.TaxCalculate(invo.GST_MST_ITEM, isInter, isExported, isImport, isUTState, isJobwork, isEcom, isUn, EnumConstants.TaxType.CGST, invo.TaxableAmount.HasValue ? invo.TaxableAmount.Value : 0, invo.GST_MST_ITEM.CGST.Value), SGSTRate = Calculate.TaxRate(invo.GST_MST_ITEM, isInter, isExported, isImport, isUTState, isJobwork, isEcom, isUn, EnumConstants.TaxType.SGST, invo.TaxableAmount.HasValue ? invo.TaxableAmount.Value : 0, invo.GST_MST_ITEM.SGST.Value), SGSTAmt = Calculate.TaxCalculate(invo.GST_MST_ITEM, isInter, isExported, isImport, isUTState, isJobwork, isEcom, isUn, EnumConstants.TaxType.SGST, invo.TaxableAmount.HasValue ? invo.TaxableAmount.Value : 0, invo.GST_MST_ITEM.SGST.Value), UGSTRate = Calculate.TaxRate(invo.GST_MST_ITEM, isInter, isExported, isImport, isUTState, isJobwork, isEcom, isUn, EnumConstants.TaxType.UTGST, invo.TaxableAmount.HasValue ? invo.TaxableAmount.Value : 0, invo.GST_MST_ITEM.UGST.Value), UGSTAmt = Calculate.TaxCalculate(invo.GST_MST_ITEM, isInter, isExported, isImport, isUTState, isJobwork, isEcom, isUn, EnumConstants.TaxType.UTGST, invo.TaxableAmount.HasValue ? invo.TaxableAmount.Value : 0, invo.GST_MST_ITEM.UGST.Value), CessRate = isJobwork ? 0 : invo.GST_MST_ITEM.CESS, CessAmt = isJobwork ? 0 : Calculate.CalculateCESSLineIDWise(invo.TaxableAmount.HasValue ? invo.TaxableAmount.Value : 0, invo.GST_MST_ITEM.CESS.Value) //TotalAmountWithTax = invo.TaxableAmount + IGSTAmt, }; bool invoiceHasParent = Invoice.ParentInvoiceID != null ? true : false; if (!invoiceHasParent) { //Update old invoice status that is A or M---------------Start------------- if (Invoice.InvoiceMonth == (byte)DateTime.Now.Month) { var oldInvoice = unitOfWork.InvoiceRepository.Find(f => f.InvoiceID == Invoice.InvoiceID); oldInvoice.InvoiceStatus = Convert.ToByte(EnumConstants.InvoiceStatus.Amended); // Invoice.InvoiceID = updateInvoice.InvoiceID; var invoiceUpdate = unitOfWork.InvoiceRepository.Update(oldInvoice); unitOfWork.Save(); } else { var oldInvoice = unitOfWork.InvoiceRepository.Find(f => f.InvoiceID == Invoice.InvoiceID); oldInvoice.InvoiceStatus = Convert.ToByte(EnumConstants.InvoiceStatus.Modified); // updateInvoice.InvoiceID = updateInvoice.InvoiceID; var invoiceUpdate = unitOfWork.InvoiceRepository.Update(oldInvoice); unitOfWork.Save(); } inv.ParentInvoiceID = Invoice.InvoiceID; var invoiceCreate = unitOfWork.InvoiceRepository.Create(inv); unitOfWork.Save(); foreach (GST_TRN_INVOICE_DATA item in invLineItem) { item.InvoiceID = invoiceCreate.InvoiceID; item.TotalAmountWithTax = item.TaxableAmount + item.IGSTAmt + item.CGSTAmt + item.SGSTAmt + item.UGSTAmt + item.CessAmt; unitOfWork.InvoiceDataRepository.Create(item); } unitOfWork.Save(); invoiceItem.AutoCorrectInvoice(invoiceCreate.InvoiceID); bool isSave = insertPurchaseRegsiter.UpdatePurchaseDataItemFromInvoice(inv); GST_TRN_INVOICE_AUDIT_TRAIL auditStatus = new GST_TRN_INVOICE_AUDIT_TRAIL(); auditStatus.InvoiceID = invoiceCreate.InvoiceID; auditStatus.AuditTrailStatus = (byte)EnumConstants.InvoiceAuditTrailSatus.Import2A; auditStatus.InvoiceAction = (byte)EnumConstants.InvoiceActionAuditTrail.Modify; auditStatus.ReceiverInvoiceAction = (byte)EnumConstants.InvoiceActionAuditTrail.Modify; auditStatus.ReceiverInvoiceActionDate = DateTime.Now; // auditStatus.CreatedDate = DateTime.Now; auditStatus.CreatedBy = Common.LoggedInUserID(); unitOfWork.InvoiceAuditTrailRepositry.Create(auditStatus); unitOfWork.Save(); } else { foreach (GST_TRN_INVOICE_DATA item in invLineItem) { // item.InvoiceDataID = invp item.InvoiceID = Invoice.InvoiceID; item.TotalAmountWithTax = item.TaxableAmount + item.IGSTAmt + item.CGSTAmt + item.SGSTAmt + item.UGSTAmt + item.CessAmt; item.CreatedDate = DateTime.Now; unitOfWork.InvoiceDataRepository.Update(item); } unitOfWork.Save(); invoiceItem.AutoCorrectInvoice(Invoice.InvoiceID); bool isSave = insertPurchaseRegsiter.UpdatePurchaseDataItemFromInvoice(Invoice); } gvInvoice_Items.DataSource = null; gvInvoice_Items.DataBind(); lkbUpdateInvoice.Visible = false; Invoice = new GST_TRN_INVOICE(); uc_sucess.SuccessMessage = "Data updated successfully."; if (!string.IsNullOrEmpty(EditFrom)) { if (EditFrom == "GSTR2") { cls_ITC itc = new cls_ITC(); itc.ITCVoucherType = (byte)EnumConstants.ITCVoucherType.Purchase; itc.SaveItcReceiver(inv); } } UpdateInvoiceClick(sender, e); } } catch (Exception ex) { cls_ErrorLog ob = new cls_ErrorLog(); cls_ErrorLog.LogError(ex, Common.LoggedInUserID()); } }