protected void btnInsert_Click(object sender, EventArgs e) { string factureNumber = tbFactureNumber.Text; DateTime paidDate = DateTime.Now; DateTime.TryParse(tbDateOfPayment.Text, out paidDate); try { Broker.DataAccess.Facture f = Broker.DataAccess.Facture.GetByNumber(factureNumber); if (f != null) { foreach (GridViewRow gvRow in GridViewPayments.Rows) { decimal newTotValue = 0; TextBox tbPaidValue = (TextBox)gvRow.FindControl("tbValue"); TextBox tbFactureItemID = (TextBox)gvRow.FindControl("tbFactureItemID"); decimal.TryParse(tbPaidValue.Text, out newTotValue); int factureItemID = 0; int.TryParse(tbFactureItemID.Text, out factureItemID); if (factureItemID > 0) { if (newTotValue < FactureCollectedPaidValue.GetPaidValueForFactureItem(factureItemID)) { RegisterStartupScript("myAlert", "<script>alert('ВНЕСОВТЕ ПОМАЛ ИЗНОС ОД ТОА ШТО Е ПЛАТЕНО ДО СЕГА!')</script>"); return; } if (newTotValue > FactureItem.Get(factureItemID).BrokerageValue) { RegisterStartupScript("myAlert", "<script>alert('ВНЕСОВТЕ ПОГОЛЕМ ИЗНОС ОД ПРЕСМЕТАНАТА БРОКЕРАЖА!')</script>"); return; } if (FactureCollectedPaidValue.GetPaidValueForFactureItem(factureItemID) != FactureItem.Get(factureItemID).BrokerageValue) { FactureCollectedPaidValue fcpv = new FactureCollectedPaidValue(); fcpv.FactureItemID = factureItemID; fcpv.PaidDate = paidDate; fcpv.PaidValue = newTotValue - FactureCollectedPaidValue.GetPaidValueForFactureItem(factureItemID); fcpv.Insert(); FactureItem fi = FactureItem.Get(factureItemID); List <PolicyItemFactureItem> lstPIFI = PolicyItemFactureItem.GetByFactureItemID(factureItemID); decimal koef = fcpv.PaidValue / fi.BrokerageValue; List <InsuranceSubType> listAppropriateIST = Broker.DataAccess.ControlAppropriateInsuranceSubType.Table.Select(c => c.InsuranceSubType).ToList(); Dictionary <InsuranceSubType, decimal> dic = new Dictionary <InsuranceSubType, decimal>(); decimal totValue = 0; foreach (PolicyItem pi in lstPIFI.Select(c => c.PolicyItem).Where(c => c.Policy.Discard == false).ToList()) { decimal brokPercentage = 0; if (pi.BrokerageID != null) { if (pi.Policy.Client.IsLaw) { brokPercentage = pi.Brokerage.PercentageForLaws; } else { brokPercentage = pi.Brokerage.PercentageForPrivates; } } else if (pi.PacketBrokerageID != null) { if (pi.Policy.Client.IsLaw) { brokPercentage = pi.PacketsInsuranceSubType.BrokeragePecentageForLaws; } else { brokPercentage = pi.PacketsInsuranceSubType.BrokeragePecentageForPrivates; } } foreach (InsuranceSubType ist in listAppropriateIST) { List <Broker.DataAccess.Control> listControls = ControlAppropriateInsuranceSubType.GetByInsuranceSubType(ist.ID); decimal tmpValue = 0; foreach (Broker.DataAccess.Control con in listControls) { PolicyExtendInformation pei = PolicyExtendInformation.GetByPolicyItemAndControl(pi.ID, con.ID); if (pei != null) { tmpValue += Convert.ToDecimal(pei.Value); } } if (dic.Keys.Contains(ist)) { dic[ist] += (tmpValue * brokPercentage / 100); } else { dic.Add(ist, (tmpValue * brokPercentage / 100)); } } //totValue += RateController.Scale5(pi.PremiumValue * brokPercentage / 100); totValue += pi.PremiumValue * brokPercentage / 100; } totValue = RateController.Scale5(totValue); decimal addValue = 0; foreach (KeyValuePair <InsuranceSubType, decimal> kvp in dic) { if (kvp.Value > 0) { addValue += kvp.Value; FacCollPaidValuesPerInsSubType fcp = new FacCollPaidValuesPerInsSubType(); fcp.FactureCollectedPaidValueID = fcpv.ID; fcp.InsuranceSubTypeID = kvp.Key.ID; fcp.PaidValue = RateController.Scale5(fcpv.PaidValue * kvp.Value / totValue); fcp.Insert(); } } decimal baseValue = fi.BrokerageValue - addValue; FacCollPaidValuesPerInsSubType fcpBase = new FacCollPaidValuesPerInsSubType(); fcpBase.FactureCollectedPaidValueID = fcpv.ID; fcpBase.InsuranceSubTypeID = fi.InsuranceSubTypeID; fcpBase.PaidValue = RateController.Scale5(fcpv.PaidValue * baseValue / totValue); fcpBase.Insert(); } } } } else { lblFeedback.Text = "Не е пронајдена фактура!"; } } catch (Exception ex) { lblFeedback.Text = "Грешка!"; } }
public static string DeletePolicy(int piID) { DataClassesDataContext dc = new DataClassesDataContext(); string retString = "Полисата е избришана."; PolicyItem pi = PolicyItem.Get(piID); Distribution d = Distribution.GetByNumberAndSubTypeAndCompany(pi.InsuranceSubTypeID, pi.PolicyNumber, pi.Policy.InsuranceCompanyID); Policy p = Policy.Get(pi.PolicyID); List <RollBackDistributionItem> listRDI = RollBackDistributionItem.Table.Where(c => c.PolicyItemID == pi.ID).ToList(); if (listRDI.Count > 0) { retString = "Полисата е раздолжена и не може да се брише!"; return(retString); } List <Rate> lstRates = Rate.GetByPolicyItemID(pi.ID); if (lstRates.Count > 0) { List <Payment> lstPayments = Payment.GetByRateID(lstRates[0].ID); if (lstPayments.Count > 0) { if (lstPayments[0].IsFactured) { retString = "Полисата е фактурирана за брокеража и не може да се брише!"; return(retString); } } foreach (Rate r in lstRates) { List <Payment> lstP = Payment.GetByRateID(r.ID); foreach (Payment pay in lstP) { List <PaymentsPerInsSubType> lstPPIST = PaymentsPerInsSubType.GetByPayment(pay.ID); foreach (PaymentsPerInsSubType ppist in lstPPIST) { string queryppist = @"DELETE FROM PaymentsPerInsSubTypes WHERE ID = " + ppist.ID; dc.ExecuteCommand(queryppist); //ppist.Delete(); } string queryppay = @"DELETE FROM Payments WHERE ID = " + pay.ID; dc.ExecuteCommand(queryppay); //pay.Delete(); } string queryr = @"DELETE FROM Rates WHERE ID = " + r.ID; dc.ExecuteCommand(queryr); //r.Delete(); } string querypei = @"DELETE FROM PolicyExtendInformations WHERE PolicyItemID = " + pi.ID; dc.ExecuteCommand(querypei); Broker.DataAccess.Facture facture = PolicyItemFactureItem.GetByPolicyItemID(pi.ID); if (facture != null) { List <Broker.DataAccess.FactureItem> listFI = FactureItem.GetByFacture(facture.ID); foreach (FactureItem fi in listFI) { string querypifi = @"DELETE FROM PolicyItemFactureItems WHERE FactureItemID = " + fi.ID; dc.ExecuteCommand(querypifi); string queryfi = @"DELETE FROM FactureItems WHERE ID = " + fi.ID; dc.ExecuteCommand(queryfi); } string queryf = @"DELETE FROM Factures WHERE ID = " + facture.ID; dc.ExecuteCommand(queryf); } string querypi = @"DELETE FROM PolicyItems WHERE ID = " + pi.ID; dc.ExecuteCommand(querypi); //pi.Delete(); string queryp = @"DELETE FROM Policies WHERE ID = " + p.ID; dc.ExecuteCommand(queryp); //p.Delete(); string queryd = @"UPDATE Distributions SET IsUsed = 0 WHERE ID = " + d.ID; dc.ExecuteCommand(queryd); //d.IsUsed = false; //Distribution.Table.Context.SubmitChanges(); } return(retString); }