private void UpdateCreditorAccount(BankExpenditureNoteModel model, IdentityService identityService) { List <CreditorAccountViewModel> postedData = new List <CreditorAccountViewModel>(); foreach (var item in model.Details) { CreditorAccountViewModel viewModel = new CreditorAccountViewModel() { Code = model.DocumentNo, Date = model.Date, Id = (int)model.Id, InvoiceNo = item.InvoiceNo, Mutation = item.TotalPaid, SupplierCode = model.SupplierCode, SupplierName = model.SupplierName }; postedData.Add(viewModel); } var httpClient = (IHttpClientService)this.serviceProvider.GetService(typeof(IHttpClientService)); var response = httpClient.PutAsync($"{APIEndpoint.Finance}{CREDITOR_ACCOUNT_URI}", new StringContent(JsonConvert.SerializeObject(postedData).ToString(), Encoding.UTF8, General.JsonMediaType)).Result; response.EnsureSuccessStatusCode(); }
private List <CreditorAccountViewModel> GetPreviousMonthReport(IQueryable <CreditorAccountModel> supplierQuery, int month, int year, int offSet) { List <CreditorAccountViewModel> result = new List <CreditorAccountViewModel>(); List <CreditorAccountModel> previousMonthCreditorAccount = new List <CreditorAccountModel>(); var timeOffset = new TimeSpan(IdentityService.TimezoneOffset, 0, 0); var dateSearch = new DateTimeOffset(year, month, 1, 0, 0, 0, timeOffset); var debtQuery = supplierQuery.Where(x => x.FinalBalance > 0 && x.UnitReceiptNoteDate.HasValue && x.UnitReceiptNoteDate.Value < dateSearch).ToList(); var paidQuery = supplierQuery.Where(x => x.FinalBalance == 0 && x.BankExpenditureNoteDate.HasValue && x.BankExpenditureNoteDate.Value.Month == month && x.BankExpenditureNoteDate.Value.Year == year && x.UnitReceiptNoteDate.HasValue && x.UnitReceiptNoteDate.Value < dateSearch).ToList(); previousMonthCreditorAccount.AddRange(debtQuery); previousMonthCreditorAccount.AddRange(paidQuery); foreach (var item in previousMonthCreditorAccount.OrderBy(x => x.UnitReceiptNoteDate.GetValueOrDefault())) { decimal unitReceiptMutaion = 0; decimal bankExpenditureMutation = 0; decimal memoMutation = 0; //if (!string.IsNullOrEmpty(item.UnitReceiptNoteNo)) //{ CreditorAccountViewModel vm = new CreditorAccountViewModel { UnitReceiptNoteNo = item.UnitReceiptNoteNo, Date = item.UnitReceiptNoteDate.Value, InvoiceNo = item.InvoiceNo, DPP = item.UnitReceiptNoteDPP, PPN = item.UnitReceiptNotePPN, Total = item.UnitReceiptMutation, Mutation = item.UnitReceiptMutation, }; unitReceiptMutaion = vm.Mutation; //} if (!string.IsNullOrEmpty(item.BankExpenditureNoteNo)) { //CreditorAccountViewModel vm = new CreditorAccountViewModel //{ vm.BankExpenditureNoteNo = item.BankExpenditureNoteNo; vm.Date = item.BankExpenditureNoteDate.Value; vm.InvoiceNo = item.InvoiceNo; vm.DPP = item.BankExpenditureNoteDPP; vm.PPN = item.BankExpenditureNotePPN; vm.Total = item.BankExpenditureNoteMutation; vm.Mutation = item.BankExpenditureNoteMutation * -1; //}; bankExpenditureMutation = vm.Mutation; //result.Add(vm); } //if (!string.IsNullOrEmpty(item.MemoNo)) //{ // //CreditorAccountViewModel vm = new CreditorAccountViewModel // //{ // vm.MemoNo = item.MemoNo; // vm.Date = item.MemoDate.Value; // vm.InvoiceNo = item.InvoiceNo; // vm.DPP = item.MemoDPP; // vm.PPN = item.MemoPPN; // vm.Total = item.MemoMutation; // vm.Mutation = item.MemoMutation; // //}; // memoMutation = vm.Mutation; // //result.Add(vm); //} result.Add(vm); } if (result.Count > 0) { CreditorAccountViewModel totalPrevious = new CreditorAccountViewModel() { FinalBalance = result.Sum(x => x.Mutation) }; result.Add(totalPrevious); } return(result); }
public (List <CreditorAccountViewModel>, decimal) GetReport(string suplierName, int month, int year, int offSet) { var supplierQuery = DbContext.CreditorAccounts.AsQueryable().Where(x => x.SupplierName == suplierName); var result = GetPreviousMonthReport(supplierQuery, month, year, offSet); //var currentQuery = supplierQuery.Where(x => x.UnitReceiptNoteDate.HasValue && x.UnitReceiptNoteDate.Value.Month == month && x.UnitReceiptNoteDate.Value.Year == year); var currentQuery = supplierQuery.Where(x => (x.UnitReceiptNoteDate.HasValue && x.UnitReceiptNoteDate.Value.Month == month && x.UnitReceiptNoteDate.Value.Year == year) || (x.UnitPaymentCorrectionDate.HasValue && x.UnitPaymentCorrectionDate.Value.Month == month && x.UnitPaymentCorrectionDate.Value.Year == year)); //if (currentQuery.Count() == 0) //{ // return (new List<CreditorAccountViewModel>(), 0); //} var items = currentQuery.OrderBy(x => x.UnitReceiptNoteDate.GetValueOrDefault()).ToList(); foreach (var item in items) { decimal unitReceiptMutation = 0; decimal bankExpenditureMutation = 0; //decimal memoMutation = 0; //if (!string.IsNullOrEmpty(item.UnitReceiptNoteNo)) //{ CreditorAccountViewModel vm = new CreditorAccountViewModel { UnitReceiptNoteNo = item.UnitReceiptNoteNo, Products = item.Products, Date = item.UnitReceiptNoteDate.GetValueOrDefault(), InvoiceNo = item.InvoiceNo, DPP = item.CurrencyRate == 1 ? item.UnitReceiptNoteDPP : 0, DPPCurrency = item.CurrencyRate != 1 ? item.UnitReceiptNoteDPP : 0, PPN = item.UnitReceiptNotePPN, Total = item.UnitReceiptMutation, Mutation = item.CurrencyRate != 1 ? item.UnitReceiptMutation * item.CurrencyRate : item.UnitReceiptMutation, PaymentDuration = item.PaymentDuration, MemoNo = item.MemoNo, CorrectionNo = item.UnitPaymentCorrectionNo }; unitReceiptMutation = vm.Mutation; //result.Add(vm); //} if (!string.IsNullOrEmpty(item.BankExpenditureNoteNo)) { vm.BankExpenditureNoteNo = item.BankExpenditureNoteNo; //vm.Date = item.BankExpenditureNoteDate.GetValueOrDefault(); vm.InvoiceNo = item.InvoiceNo; vm.DPP = item.BankExpenditureNoteDPP; vm.PPN = item.BankExpenditureNotePPN; vm.Total = item.BankExpenditureNoteMutation; vm.Mutation = item.BankExpenditureNoteMutation * -1; vm.MemoNo = item.MemoNo; vm.PaymentDuration = item.PaymentDuration; vm.Products = item.Products; //}; bankExpenditureMutation = vm.Mutation; //} } if (!string.IsNullOrEmpty(item.UnitPaymentCorrectionNo)) { vm.BankExpenditureNoteNo = item.BankExpenditureNoteNo; //vm.Date = item.BankExpenditureNoteDate.GetValueOrDefault(); vm.InvoiceNo = item.InvoiceNo; vm.DPP = item.UnitPaymentCorrectionDPP; vm.PPN = item.UnitPaymentCorrectionPPN; vm.Total = item.UnitPaymentCorrectionDPP + item.UnitPaymentCorrectionPPN; vm.Mutation = item.UnitPaymentCorrectionMutation; vm.MemoNo = item.MemoNo; vm.PaymentDuration = item.PaymentDuration; vm.Products = item.Products; //}; //bankExpenditureMutation = vm.Mutation.GetValueOrDefault(); //} } result.Add(vm); //if (!string.IsNullOrEmpty(item.MemoNo)) //{ // if (item.MemoDate.HasValue && item.MemoDate.Value.Month == month && item.MemoDate.Value.Year == year) // { // CreditorAccountViewModel vm = new CreditorAccountViewModel // { // MemoNo = item.MemoNo, // Date = item.MemoDate.Value, // InvoiceNo = item.InvoiceNo, // DPP = item.MemoDPP, // PPN = item.MemoPPN, // Total = item.MemoMutation, // Mutation = item.MemoMutation, // }; // memoMutation = vm.Mutation.GetValueOrDefault(); // result.Add(vm); // } //} CreditorAccountViewModel resultVM = new CreditorAccountViewModel() { InvoiceNo = item.InvoiceNo, Mutation = unitReceiptMutation - bankExpenditureMutation, FinalBalance = unitReceiptMutation - bankExpenditureMutation, Currency = item.CurrencyCode, CurrencyRate = item.CurrencyRate, DPPCurrency = item.DPPCurrency }; result.Add(resultVM); } return(result, result.Sum(x => x.FinalBalance)); }
public (List <CreditorAccountViewModel>, decimal) GetReport(string suplierName, int month, int year, int offSet) { IQueryable <CreditorAccountModel> supplierQuery = DbContext.CreditorAccounts.AsQueryable().Where(x => x.SupplierName == suplierName); var currentQuery = supplierQuery.Where(x => x.UnitReceiptNoteDate.HasValue && x.UnitReceiptNoteDate.Value.Month == month && x.UnitReceiptNoteDate.Value.Year == year); if (currentQuery.Count() == 0) { return(new List <CreditorAccountViewModel>(), 0); } var result = GetPreviousMonthReport(supplierQuery, month, year, offSet); foreach (var item in currentQuery.OrderBy(x => x.UnitReceiptNoteDate.GetValueOrDefault()).ToList()) { decimal unitReceiptMutation = 0; decimal bankExpenditureMutation = 0; decimal memoMutation = 0; if (!string.IsNullOrEmpty(item.UnitReceiptNoteNo)) { CreditorAccountViewModel vm = new CreditorAccountViewModel { UnitReceiptNoteNo = item.UnitReceiptNoteNo, Products = item.Products, Date = item.UnitReceiptNoteDate.Value, InvoiceNo = item.InvoiceNo, DPP = item.CurrencyRate == 1 ? item.UnitReceiptNoteDPP : 0, DPPCurrency = item.CurrencyRate != 1 ? item.UnitReceiptNoteDPP : 0, PPN = item.UnitReceiptNotePPN, Total = item.UnitReceiptMutation, Mutation = item.CurrencyRate != 1 ? item.UnitReceiptMutation * item.CurrencyRate : item.UnitReceiptMutation, PaymentDuration = item.PaymentDuration }; unitReceiptMutation = vm.Mutation.GetValueOrDefault(); result.Add(vm); } if (!string.IsNullOrEmpty(item.BankExpenditureNoteNo)) { if (item.BankExpenditureNoteDate.HasValue && item.BankExpenditureNoteDate.Value.Month == month && item.BankExpenditureNoteDate.Value.Year == year) { CreditorAccountViewModel vm = new CreditorAccountViewModel { BankExpenditureNoteNo = item.BankExpenditureNoteNo, Date = item.BankExpenditureNoteDate.Value, InvoiceNo = item.InvoiceNo, DPP = item.BankExpenditureNoteDPP, PPN = item.BankExpenditureNotePPN, Total = item.BankExpenditureNoteMutation, Mutation = item.BankExpenditureNoteMutation * -1, }; bankExpenditureMutation = vm.Mutation.GetValueOrDefault(); result.Add(vm); } } if (!string.IsNullOrEmpty(item.MemoNo)) { if (item.MemoDate.HasValue && item.MemoDate.Value.Month == month && item.MemoDate.Value.Year == year) { CreditorAccountViewModel vm = new CreditorAccountViewModel { MemoNo = item.MemoNo, Date = item.MemoDate.Value, InvoiceNo = item.InvoiceNo, DPP = item.MemoDPP, PPN = item.MemoPPN, Total = item.MemoMutation, Mutation = item.MemoMutation, }; memoMutation = vm.Mutation.GetValueOrDefault(); result.Add(vm); } } CreditorAccountViewModel resultVM = new CreditorAccountViewModel() { InvoiceNo = item.InvoiceNo, Mutation = unitReceiptMutation + bankExpenditureMutation, FinalBalance = unitReceiptMutation + bankExpenditureMutation, Currency = item.CurrencyCode, CurrencyRate = item.CurrencyRate, DPPCurrency = item.DPPCurrency }; result.Add(resultVM); } return(result, result.Sum(x => x.FinalBalance).GetValueOrDefault()); }