Beispiel #1
0
        public async Task <JsonResult> Stop(StopOrderViewModel stopOrderViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(Json(false, data: ErrorToDictionary()));
            }

            var result = await ChangeStep(new string[] { stopOrderViewModel.OrderId }, OrderStatus.Delete);

            if (stopOrderViewModel.DesginAmount <= 0 && stopOrderViewModel.OtherAmount <= 0)
            {
                return(Json(result));
            }

            var manager        = new ReconciliationManager(User);
            var reconciliation = new Reconciliation
            {
                CustomerId   = stopOrderViewModel.CustomerId,
                CustomerName = stopOrderViewModel.CustomerName,
                Amount       = stopOrderViewModel.DesginAmount + stopOrderViewModel.OtherAmount,
                CompanyId    = User.CompanyId,
                Type         = ReconciliationType.Arrearage,
                Created      = DateTime.Now,
                CreatorId    = User.Id,
                Remark       = $"{stopOrderViewModel.OrderId}消单," + (stopOrderViewModel.DesginAmount > 0 ? $"设计费用{stopOrderViewModel.DesginAmount}," : "")
                               + (stopOrderViewModel.OtherAmount > 0 ? $"其他费用{ stopOrderViewModel.OtherAmount}" : "")
            };
            await manager.CreateAsync(reconciliation);

            return(Json(result));
        }
Beispiel #2
0
        public async Task <FileStreamResult> Export()
        {
            var manager         = new ReconciliationManager(User);
            var reconciliations = await manager.GetCustomerReconciliationsAsync();

            var titles = new string[] { "序号", "日期", "付/欠款", "金额(元)", "备注" };
            var result = Dickson.Web.Helper.ExcelHelp.Export(titles, "对账记录", ws =>
            {
                var row   = 2;
                int index = 1;
                foreach (var reconciliation in reconciliations)
                {
                    ws.Cells[row, 1].Value = index;
                    ws.Cells[row, 2].Value = reconciliation.Created.ToString(SaleManagentConstants.UI.DateStringFormat);
                    ws.Cells[row, 3].Value = reconciliation.Type.GetDisplayName();
                    ws.Cells[row, 4].Value = reconciliation.Amount;
                    ws.Cells[row, 5].Value = reconciliation.Remark;
                    row++;
                    index++;
                }
                ;
            });

            return(result);
        }
        public async Task <JsonResult> GetTotalSurplusArrearage(string customerId)
        {
            var manager = new ReconciliationManager(User);
            var result  = await manager.GetTotalSurplusArrearageAsync(customerId);

            return(Json(true, string.Empty, result));
        }
Beispiel #4
0
        public async Task <ActionResult> List()
        {
            var manager = new ReconciliationManager(User);

            var reconciliations = await manager.GetCustomerReconciliationsAsync();

            return(View(reconciliations));
        }
        public async Task <ActionResult> AccountStatistics(ReportQueryBaseDto reportQuery)
        {
            if (!Request.IsAjaxRequest())
            {
                return(View(reportQuery));
            }

            var manager = new ReconciliationManager(User);
            var list    = await manager.GetAccountStatisticsAsync(reportQuery);

            return(Json(true, string.Empty, list));
        }
Beispiel #6
0
        public async Task <ActionResult> Edit(int id)
        {
            if (id <= 0)
            {
                return(Json(false, "参数错误"));
            }

            var manager        = new ReconciliationManager(User);
            var reconciliation = await manager.GetReconciliationAsync(id);

            var reconciliationItemViewModel = new ReconciliationItemViewModel(reconciliation);

            return(View(reconciliationItemViewModel));
        }
Beispiel #7
0
        public async Task <JsonResult> Edit(ReconciliationItemViewModel request)
        {
            if (!ModelState.IsValid)
            {
                return(Json(false, data: ErrorToDictionary()));
            }

            var manager        = new ReconciliationManager(User);
            var reconciliation = await manager.GetReconciliationAsync(request.Id);

            reconciliation.Type   = request.Type;
            reconciliation.Amount = request.Amount;
            reconciliation.Remark = request.Remark;

            var result = await manager.CreateAsync(reconciliation);

            return(Json(true, string.Empty, result));
        }
Beispiel #8
0
        public async Task <JsonResult> Delete(int id)
        {
            var manager        = new ReconciliationManager(User);
            var reconciliation = await manager.GetReconciliationAsync(id);

            if (reconciliation == null)
            {
                return(Json(false, "对账记录不存在"));
            }

            if (reconciliation.Remark.Contains("出货"))
            {
                return(Json(false, "出货单的对账记录只能取消审核出货单,不能直接删除"));
            }

            var result = await manager.DeleteReconciliationAsync(reconciliation);

            return(Json(true, string.Empty, result));;
        }
Beispiel #9
0
        public async Task <ActionResult> List(ReconciliationQueryRequest request)
        {
            if (!Request.IsAjaxRequest())
            {
                return(View(request));
            }

            var manager = new ReconciliationManager(User);

            var paging = await manager.GetReconciliationsAsync(request.Start, request.Take, request.GetReconciliationListQueryFilter());

            var reconciliations = paging.List.Select(u =>
            {
                return(new ReconciliationItemViewModel(u));
            });

            return(Json(true, string.Empty, new
            {
                paging.Total,
                List = reconciliations,
            }));
        }
Beispiel #10
0
        public async Task <JsonResult> Add(ReconciliationItemViewModel request)
        {
            if (!ModelState.IsValid)
            {
                return(Json(false, data: ErrorToDictionary()));
            }

            var manager        = new ReconciliationManager(User);
            var reconciliation = new Reconciliation
            {
                CustomerId   = request.CustomerId,
                CustomerName = request.CustomerName,
                Amount       = request.Amount,
                CompanyId    = User.CompanyId,
                Type         = request.Type,
                Created      = DateTime.Now,
                CreatorId    = User.Id,
                Remark       = request.Remark
            };
            var result = await manager.CreateAsync(reconciliation);

            return(Json(true, string.Empty, result));
        }
        public async Task <FileStreamResult> AccountStatisticsExport(ReportQueryBaseDto reportQuery)
        {
            var manager           = new ReconciliationManager(User);
            var accountStatistics = await manager.GetAccountStatisticsAsync(reportQuery);

            var titles = new string[] { "序号", "客户", "累积消费(元)", "当前欠款(元)" };
            var result = Dickson.Web.Helper.ExcelHelp.Export(titles, "账目报表", ws =>
            {
                var row   = 2;
                int index = 1;
                foreach (var accountStatistic in accountStatistics)
                {
                    ws.Cells[row, 1].Value = index;
                    ws.Cells[row, 2].Value = accountStatistic.CustomerName;
                    ws.Cells[row, 3].Value = accountStatistic.PaymentInQuery;
                    ws.Cells[row, 4].Value = accountStatistic.SurplusArrearage;
                    row++;
                    index++;
                }
                ;
            });

            return(result);
        }