Exemplo n.º 1
0
        public PaymentDocument GetPaymentDocumentById(Guid paymentDocId)
        {
            PaymentDocument paymentDocument =
                _context.PaymentDocuments.SingleOrDefault(p => p.PaymentDocId == paymentDocId);

            return(paymentDocument);
        }
Exemplo n.º 2
0
		/// <summary>
		/// Work out the changes when a Payment is edited
		/// </summary>
		protected override void calculatePaymentChanges(PaymentDocument json, decimal amount, out decimal changeInDocumentAmount, out decimal changeInOutstanding) {
			PaymentHeader document = json.header;
			PaymentHeader original = getDocument(document);
			changeInDocumentAmount = document.DocumentAmount - original.DocumentAmount;
			changeInOutstanding = original.DocumentOutstanding + changeInDocumentAmount - amount;
			Utils.Check(document.DocumentOutstanding == document.Remaining, "Remaining {0:0.00} does not agree with outstanding {1:0.00}",
				document.Remaining, document.DocumentOutstanding);
		}
Exemplo n.º 3
0
        protected override void calculatePaymentChanges(PaymentDocument json, decimal amount, out decimal changeInDocumentAmount, out decimal changeInOutstanding)
        {
            PaymentHeader document = json.header;
            PaymentHeader original = getDocument(document);

            changeInDocumentAmount = -(document.DocumentAmount - original.DocumentAmount);
            changeInOutstanding    = 0;
            Utils.Check(-changeInDocumentAmount == amount, "Change in document amount {0:0.00} does not agree with payments {1:0.00}",
                        -changeInDocumentAmount, amount);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Retrieve a payment for editing
        /// </summary>
        public void Payment(int id)
        {
            PaymentDocument document = getPayment(id);
            JObject         record   = document.ToJObject();

            nextPreviousDocument(record, "WHERE DocumentTypeId = " + (int)PaymentDoc);
            record.Add("BankAccounts", SelectBankAccounts());
            record.Add("Names", SelectNames(NameType));
            Record = record;
        }
Exemplo n.º 5
0
        /// <summary>
        /// Work out the changes when a Payment is edited
        /// </summary>
        protected override void calculatePaymentChanges(PaymentDocument json, decimal amount, out decimal changeInDocumentAmount, out decimal changeInOutstanding)
        {
            PaymentHeader document = json.header;
            PaymentHeader original = getDocument(document);

            changeInDocumentAmount = document.DocumentAmount - original.DocumentAmount;
            changeInOutstanding    = document.DocumentOutstanding - original.DocumentOutstanding;
            Utils.Check(document.DocumentOutstanding == document.Remaining, "Remaining {0:0.00} does not agree with outstanding {1:0.00}",
                        document.Remaining, document.DocumentOutstanding);
        }
Exemplo n.º 6
0
        public bool AddPaymentDoc(PaymentDocument paymentDocument)
        {
            if (paymentDocument == null)
            {
                return(false);
            }

            _context.PaymentDocuments.Add(paymentDocument);
            return(true);
        }
Exemplo n.º 7
0
        public bool DeleteFileFromPaymentDoc(PaymentDocument paymentDocument)
        {
            if (paymentDocument != null)
            {
                _context.PaymentDocuments.Remove(paymentDocument);
                SaveChanges();
                return(true);
            }

            return(false);
        }
Exemplo n.º 8
0
        private PaymentDocument MockPaymentDoc()
        {
            var paymentDoc = new PaymentDocument
            {
                PaymentDocId        = Guid.Parse("21fbb2ce-75fd-42b9-9ec4-3b28b85e84c3"),
                PaymentFileName     = "Food Company",
                PaymentLastModified = new DateTime(2017, 12, 4, 3, 06, 30),
                Extension           = ".pdf",
            };

            return(paymentDoc);
        }
Exemplo n.º 9
0
        public ActionResult UploadFilePaymentDoc(PaymentDocument paymentDocument)
        {
            DateTime dateTime      = DateTime.UtcNow;
            var      timeZoneInfo  = TimeZoneInfo.FindSystemTimeZoneById("SE Asia Standard Time");
            var      convertedTime = TimeZoneInfo.ConvertTime(dateTime, timeZoneInfo);

            if (ModelState.IsValid)
            {
                List <PaymentDocument> paymentDocuments = new List <PaymentDocument>();
                for (int i = 0; i < Request.Files.Count; i++)
                {
                    var file = Request.Files[i];

                    if (file != null && file.ContentLength > 0)
                    {
                        var             fileName = Path.GetFileName(file.FileName);
                        PaymentDocument payment  = new PaymentDocument
                        {
                            PaymentFileName     = fileName,
                            Extension           = Path.GetExtension(fileName),
                            PaymentDocId        = Guid.NewGuid(),
                            PaymentLastModified = convertedTime
                        };

                        if (payment.Extension == ".pdf")
                        {
                            paymentDocuments.Add(payment);
                            payment.PaymentDocuments = paymentDocuments;

                            var path = Path.Combine(Server.MapPath("~/App_Data/PaymentDoc/"), payment.PaymentDocId + payment.Extension);
                            file.SaveAs(path);


                            bool addPaymentDoc = _paymentDocRepository.AddPaymentDoc(payment);
                            if (addPaymentDoc.Equals(true))
                            {
                                _paymentDocRepository.SaveChanges();
                                return(RedirectToAction("ListAllPaymentDocs"));
                            }
                        }

                        ViewBag.Message = "Please, upload PDF File Only";
                        return(View("UploadFilePaymentDocView", payment));
                    }
                }
            }

            return(View("UploadFilePaymentDocView", paymentDocument));
        }
Exemplo n.º 10
0
        /// <summary>
        /// Retrieve a payment, or prepare a new one
        /// </summary>
        PaymentDocument getPayment(int?id)
        {
            PaymentHeader header = getDocument <PaymentHeader>(id);

            if (header.idDocument == null)
            {
                header.DocumentTypeId     = (int)PaymentDoc;
                header.DocumentDate       = Utils.Today;
                header.DocumentName       = "";
                header.DocumentIdentifier = "Payment";
                if (GetParameters["acct"].IsInteger())
                {
                    header.DocumentAccountId = int.Parse(GetParameters["acct"]);
                }
                else if (Settings.DefaultBankAccount > 0)
                {
                    header.DocumentAccountId = (int)Settings.DefaultBankAccount;
                }
                if (GetParameters["name"].IsInteger())
                {
                    JObject name = Database.QueryOne("*", "WHERE idNameAddress = " + GetParameters["name"], "NameAddress");
                    if (name != null)
                    {
                        checkNameType(name.AsString("Type"), NameType);
                        header.DocumentNameAddressId = name.AsInt("idNameAddress");
                        header.DocumentAddress       = name.AsString("Address");
                        header.DocumentName          = name.AsString("Name");
                    }
                }
            }
            else
            {
                checkDocType(header.DocumentTypeId, PaymentDoc);
                checkNameType(header.DocumentNameAddressId, NameType);
            }
            PaymentDocument previous = new PaymentDocument()
            {
                header = header,
                detail = PaymentListing(header.idDocument, header.DocumentNameAddressId).ToList()
            };

            return(previous);
        }
Exemplo n.º 11
0
        private bool InsertDoc(PaymentDocument test)
        {
            foreach (PaymentDocument pDocument in _paymentDocuments)
            {
                if (pDocument.AccountCode == test.AccountCode && pDocument.DocumentDate == test.DocumentDate && pDocument.DocumentDate == test.DocumentDate && pDocument.Firm._id == test.Firm._id)
                {
                    return(false);
                }
            }

            if (DbFactory.PaymentDocumentCRUD.Insert(test))
            {
                _paymentDocuments.Add(test);
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemplo n.º 12
0
        private IEnumerable <PaymentDocument> MockListPaymentDocs()
        {
            var listPaymentDoc = new PaymentDocument[]
            {
                new PaymentDocument
                {
                    PaymentDocId        = Guid.Parse("21fbb2ce-75fd-42b9-9ec4-3b28b85e84c3"),
                    PaymentFileName     = "Food Company",
                    PaymentLastModified = new DateTime(2017, 12, 4, 3, 06, 30),
                    Extension           = ".pdf",
                },
                new PaymentDocument
                {
                    PaymentDocId        = Guid.Parse("1e74ebcc-5084-4054-bd70-ae1beb1dcbb3"),
                    PaymentFileName     = "A Company",
                    PaymentLastModified = new DateTime(2017, 12, 5, 14, 06, 30),
                    Extension           = ".pdf",
                }
            };

            return(listPaymentDoc);
        }
Exemplo n.º 13
0
 public AjaxReturn PaymentPost(PaymentDocument json)
 {
     decimal amount = 0;
     Database.BeginTransaction();
     PaymentHeader document = json.header;
     checkDocType(document.DocumentTypeId, PaymentDoc);
     checkNameType(document.DocumentNameAddressId, NameType);
     checkAccountIsAcctType(document.DocumentAccountId, AcctType.Bank, AcctType.CreditCard);
     if (document.idDocument == null)
         allocateDocumentIdentifier(document);
     PaymentDocument oldDoc = getPayment(document.idDocument);
     int sign = -SignFor(PaymentDoc);
     // Update the outstanding on the paid documents
     foreach (PaymentLine payment in json.detail) {
         decimal a = payment.AmountPaid;
         PaymentLine old = oldDoc.PaymentFor(payment.idDocument);
         if (old != null)
             a -= old.AmountPaid;	// reduce update by the amount paid last time it was saved
         int? docId = payment.idDocument;
         if (a != 0) {
             Database.Execute("UPDATE Journal SET Outstanding = Outstanding - " + sign * a
                 + " WHERE DocumentId = " + Database.Quote(docId) + " AND AccountId = " + (int)LedgerAccount);
             amount += a;
         }
     }
     json.detail = json.detail.Where(l => l.AmountPaid != 0).ToList();
     decimal changeInDocumentAmount;
     decimal changeInOutstanding;
     // Virtual method, as calculation is different for customers and suppliers
     calculatePaymentChanges(json, amount, out changeInDocumentAmount, out changeInOutstanding);
     document.DocumentTypeId = (int)PaymentDoc;
     Database.Update(document);
     // Now delete the old cross reference records, and replace with new
     Database.Execute("DELETE FROM Payments WHERE idPayment = " + document.idDocument);
     foreach (PaymentLine payment in json.detail) {
         if (payment.AmountPaid != 0) {
             Database.Execute("INSERT INTO Payments (idPayment, idPaid, PaymentAmount) VALUES("
                 + document.idDocument + ", " + payment.idDocument + ", " + payment.AmountPaid + ")");
         }
     }
     // Journal between bank account and sales/purchase ledger
     Journal journal = Database.Get(new Journal() {
         DocumentId = (int)document.Id,
         JournalNum = 1
     });
     journal.DocumentId = (int)document.idDocument;
     journal.JournalNum = 1;
     journal.NameAddressId = document.DocumentNameAddressId;
     journal.Memo = document.DocumentMemo;
     journal.AccountId = document.DocumentAccountId;
     journal.Amount += changeInDocumentAmount;
     journal.Outstanding += changeInOutstanding;
     Database.Update(journal);
     journal = Database.Get(new Journal() {
         DocumentId = (int)document.Id,
         JournalNum = 2
     });
     journal.DocumentId = (int)document.idDocument;
     journal.JournalNum = 2;
     journal.NameAddressId = document.DocumentNameAddressId;
     journal.Memo = document.DocumentMemo;
     journal.AccountId = (int)LedgerAccount;
     journal.Amount -= changeInDocumentAmount;
     journal.Outstanding -= changeInOutstanding;
     Database.Update(journal);
     Line line = Database.Get(new Line() { idLine = journal.idJournal });
     line.idLine = journal.idJournal;
     line.LineAmount += PaymentDoc == DocType.BillPayment ? -changeInDocumentAmount : changeInDocumentAmount;
     Database.Update(line);
     oldDoc = PaymentGetAudit(document.idDocument);
     Database.AuditUpdate("Payment", document.idDocument, oldDoc == null ? null : oldDoc.ToJObject(), json.ToJObject());
     Database.Commit();
     return new AjaxReturn() { message = "Payment saved", id = document.idDocument };
 }
Exemplo n.º 14
0
 public ActualPaymentEventEntity(PaymentDocument paymentDocument, IEnumerable <SalesUnit> salesUnits)
 {
     PaymentDocument = paymentDocument;
     SalesUnits      = salesUnits;
 }
Exemplo n.º 15
0
        private void GenSalesUnits()
        {
            var random   = new Random();
            var products = new List <Product> {
                ProductBreakersDrivePprk, ProductVeb110, ProductZng110, ProductZip1
            };
            var facilityOwners = new List <Company> {
                CompanyFsk, CompanyMrsk
            };
            var contracts = new List <Contract> {
                ContractFsk, ContractMrsk, ContractPmk
            };
            var managers = new List <User> {
                UserIvanov, UserKosolapov, UserGazizov, UserBrehov, UserKolesnik, UserRybin
            };
            var paymentConditionSets = new List <PaymentConditionSet> {
                PaymentConditionSet50Na50, PaymentConditionSet30Na70
            };

            for (int projectNum = 0; projectNum < 20; projectNum++)
            {
                var manager = managers[random.Next(0, managers.Count)];
                var project = new Project {
                    Name = $"Реконструкция ПС №{projectNum}", ProjectType = ProjectTypeReconstruction, Manager = manager
                };
                Projects.Add(project);

                for (int pr = 0; pr < random.Next(1, 5); pr++)
                {
                    var product       = products[random.Next(0, products.Count)];
                    var facilityOwner = facilityOwners[random.Next(0, facilityOwners.Count)];
                    var facility      = new Facility {
                        Name = $"Подстанция №{projectNum}", Type = FacilityTypeSubStation, OwnerCompany = facilityOwner, Address = new Address {
                            Locality = LocalityMoscow, Description = "123"
                        }
                    };
                    int year  = random.Next(DateTime.Today.Year - 1, DateTime.Today.Year + 2);
                    int month = random.Next(1, 13);
                    int day   = random.Next(1, DateTime.DaysInMonth(year, month) + 1);
                    var deliveryDateExpected = new DateTime(year, month, day);
                    var cost = random.Next(1000, 5000001);
                    var paymentConditionSet = paymentConditionSets[random.Next(0, paymentConditionSets.Count)];

                    DateTime?        signalToStartProduction     = null;
                    DateTime?        signalToStartProductionDone = null;
                    Order            order            = null;
                    Company          producer         = null;
                    string           sn               = null;
                    Specification    specification    = null;
                    PriceCalculation priceCalculation = null;
                    PaymentDocument  paymentDocument  = null;

                    if (deliveryDateExpected < DateTime.Today.AddDays(100))
                    {
                        if (random.Next(100) < 60)
                        {
                            producer = CompanyUetm;
                            signalToStartProduction     = deliveryDateExpected.AddDays(-120);
                            signalToStartProductionDone = deliveryDateExpected.AddDays(-118);
                            order = new Order {
                                DateOpen = signalToStartProductionDone.Value, Number = $"{projectNum}-{pr}"
                            };
                            specification = new Specification {
                                Number = $"{projectNum+10}", Vat = 20, Contract = contracts[random.Next(0, contracts.Count)], Date = signalToStartProduction.Value
                            };
                            sn = $"sn-{pr}-{projectNum}";
                            paymentDocument = new PaymentDocument {
                                Number = $"pd-{pr}-{projectNum}", Vat = 20
                            };
                        }
                        else if (random.Next(100) < 60)
                        {
                            producer = random.Next(100) < 70 ? CompanyZeto : CompanyApparat;
                        }

                        priceCalculation = new PriceCalculation
                        {
                            Initiator = UserKosolapov
                        };

                        priceCalculation.History.Add(new PriceCalculationHistoryItem()
                        {
                            Moment = deliveryDateExpected.AddDays(-140),
                            Type   = PriceCalculationHistoryItemType.Start
                        });

                        priceCalculation.History.Add(new PriceCalculationHistoryItem()
                        {
                            Moment = deliveryDateExpected.AddDays(-130),
                            Type   = PriceCalculationHistoryItemType.Finish
                        });
                    }

                    var salesUnits = new List <SalesUnit>();
                    for (int salesUnitNum = 0; salesUnitNum < random.Next(1, 100); salesUnitNum++)
                    {
                        var salesUnit = new SalesUnit
                        {
                            Project = project,
                            Product = product,
                            Cost    = cost,
                            DeliveryDateExpected        = deliveryDateExpected,
                            Facility                    = facility,
                            PaymentConditionSet         = paymentConditionSet,
                            SignalToStartProduction     = signalToStartProduction,
                            SignalToStartProductionDone = signalToStartProductionDone,
                            Order                 = order,
                            OrderPosition         = order == null ? null : $"{salesUnitNum + 1}",
                            Producer              = producer,
                            PickingDate           = signalToStartProductionDone?.Date.AddDays(110),
                            EndProductionDate     = signalToStartProductionDone?.Date.AddDays(120),
                            RealizationDate       = signalToStartProductionDone?.Date.AddDays(121),
                            ShipmentDate          = signalToStartProductionDone?.Date.AddDays(121),
                            DeliveryDate          = signalToStartProductionDone?.Date.AddDays(123),
                            StartProductionDate   = signalToStartProduction?.Date,
                            EndProductionPlanDate = signalToStartProductionDone?.Date.AddDays(100),
                            SerialNumber          = sn == null ? null : $"{sn}-{salesUnitNum}",
                            Specification         = specification
                        };
                        SalesUnits.Add(salesUnit);
                        salesUnits.Add(salesUnit);
                    }

                    if (paymentDocument != null)
                    {
                        PaymentDocuments.Add(paymentDocument);
                        var date = signalToStartProduction.Value.AddDays(7);
                        var sum  = cost * random.Next(0, 75) / 100;
                        foreach (var salesUnit in salesUnits)
                        {
                            salesUnit.PaymentsActual.Add(new PaymentActual {
                                Date = date, Sum = sum
                            });
                        }
                        var payments = salesUnits.SelectMany(x => x.PaymentsActual);
                        paymentDocument.Payments.AddRange(payments);
                    }

                    if (priceCalculation != null)
                    {
                        var salesUnit            = salesUnits.First();
                        var priceCalculationItem = new PriceCalculationItem
                        {
                            RealizationDate     = deliveryDateExpected.AddDays(-2),
                            PaymentConditionSet = salesUnit.PaymentConditionSet,
                            OrderInTakeDate     = deliveryDateExpected.AddDays(-130)
                        };
                        priceCalculationItem.SalesUnits.AddRange(salesUnits);
                        priceCalculationItem.StructureCosts.Add(new StructureCost
                        {
                            AmountNumerator = 1,
                            Comment         = $"structureCostName-{projectNum}",
                            Number          = $"structureCostNumber-{projectNum}",
                            UnitPrice       = salesUnit.Cost * random.Next(4, 7) / 10
                        });

                        priceCalculation.PriceCalculationItems.Add(priceCalculationItem);
                        PriceCalculations.Add(priceCalculation);
                    }
                }
            }
        }
Exemplo n.º 16
0
        private PaymentDocument AssignValues(int i)
        {
            var pD = new PaymentDocument
            {
                //Creator = MainPage.CurrentUser todo
            };

            if (_valuesExcel[i, 5] != null)
            {
                pD.DocumentNo = _valuesExcel[i, 5].ToString();
            }
            else
            {
                return(null);
            }

            if (_valuesExcel[i, 1] != null)
            {
                pD.AccountCode = _valuesExcel[i, 1].ToString();
            }



            if (_valuesExcel[i, 4] != null)
            {
                var dateString = (_valuesExcel[i, 4].ToString());
                var testDate   = DateTime.Parse(dateString);
                pD.DocumentDate = testDate;
            }


            if (_valuesExcel[i, 8] != null)
            {
                pD.Description = _valuesExcel[i, 8].ToString();
            }

            if (_valuesExcel[i, 9] != null)
            {
                pD.Debt = double.Parse(_valuesExcel[i, 9].ToString());
            }
            if (_valuesExcel[i, 10] != null)
            {
                pD.Credit = double.Parse(_valuesExcel[i, 10].ToString());
            }
            if (_valuesExcel[i, 11] != null)
            {
                pD.Balance = double.Parse(_valuesExcel[i, 11].ToString());
            }
            if (_valuesExcel[i, 2] != null)
            {
                var firmName = _valuesExcel[i, 2].ToString();
                var firm     = DbFactory.CompanyCRUD.GetOne("Name", firmName);
                if (firm._id == null)
                {
                    firm = new Company {
                        Name = firmName, AccountCode = pD.AccountCode
                    };
                    DbFactory.CompanyCRUD.Insert(firm);
                }

                pD.Firm = firm;
            }
            return(pD);
        }
Exemplo n.º 17
0
 /// <summary>
 /// Retrieve a payment, or prepare a new one
 /// </summary>
 PaymentDocument getPayment(int? id)
 {
     PaymentHeader header = getDocument<PaymentHeader>(id);
     if (header.idDocument == null) {
         header.DocumentTypeId = (int)PaymentDoc;
         header.DocumentDate = Utils.Today;
         header.DocumentName = "";
         header.DocumentIdentifier = "Payment";
         if(Settings.DefaultBankAccount != null)
             header.DocumentAccountId = (int)Settings.DefaultBankAccount;
         if (GetParameters["name"].IsInteger()) {
             JObject name = Database.QueryOne("*", "WHERE idNameAddress = " + GetParameters["name"], "NameAddress");
             if (name != null) {
                 checkNameType(name.AsString("Type"), NameType);
                 header.DocumentNameAddressId = name.AsInt("idNameAddress");
                 header.DocumentAddress = name.AsString("Address");
                 header.DocumentName = name.AsString("Name");
             }
         }
     } else {
         checkDocType(header.DocumentTypeId, PaymentDoc);
         checkNameType(header.DocumentNameAddressId, NameType);
     }
     PaymentDocument previous = new PaymentDocument();
     previous.header = header;
     previous.detail = PaymentListing(header.idDocument, header.DocumentNameAddressId).ToList();
     return previous;
 }
Exemplo n.º 18
0
 protected abstract void calculatePaymentChanges(PaymentDocument json, decimal amount, out decimal changeInDocumentAmount, out decimal changeInOutstanding);
Exemplo n.º 19
0
        public AjaxReturn PaymentSave(PaymentDocument json)
        {
            decimal amount = 0;

            Database.BeginTransaction();
            PaymentHeader document = json.header;

            checkDocType(document.DocumentTypeId, PaymentDoc);
            checkNameType(document.DocumentNameAddressId, NameType);
            checkAccountIsAcctType(document.DocumentAccountId, AcctType.Bank, AcctType.CreditCard);
            if (document.idDocument == null)
            {
                allocateDocumentIdentifier(document);
            }
            PaymentDocument oldDoc = getPayment(document.idDocument);
            int             sign   = -SignFor(PaymentDoc);

            // Update the outstanding on the paid documents
            foreach (PaymentLine payment in json.detail)
            {
                Utils.Check(!SecurityOn || !Settings.RequireAuthorisation || Authorise || NameType != "S" || payment.Authorised > 0,
                            "Cannot pay unauthorised document");
                decimal     a   = payment.AmountPaid;
                PaymentLine old = oldDoc.PaymentFor(payment.idDocument);
                if (old != null)
                {
                    a -= old.AmountPaid;                        // reduce update by the amount paid last time it was saved
                }
                int?docId = payment.idDocument;
                if (a != 0)
                {
                    Database.Execute("UPDATE Journal SET Outstanding = Outstanding - " + sign * a
                                     + " WHERE DocumentId = " + Database.Quote(docId) + " AND AccountId = " + (int)LedgerAccount);
                    amount += a;
                }
            }
            json.detail = json.detail.Where(l => l.AmountPaid != 0).ToList();
            document.DocumentOutstanding = json.header.Remaining;
            decimal changeInDocumentAmount;
            decimal changeInOutstanding;

            // Virtual method, as calculation is different for customers and suppliers
            calculatePaymentChanges(json, amount, out changeInDocumentAmount, out changeInOutstanding);
            document.DocumentTypeId = (int)PaymentDoc;
            Database.Update(document);
            // Now delete the old cross reference records, and replace with new
            Database.Execute("DELETE FROM Payments WHERE idPayment = " + document.idDocument);
            foreach (PaymentLine payment in json.detail)
            {
                if (payment.AmountPaid != 0)
                {
                    Database.Execute("INSERT INTO Payments (idPayment, idPaid, PaymentAmount) VALUES("
                                     + document.idDocument + ", " + payment.idDocument + ", " + payment.AmountPaid + ")");
                }
            }
            // Journal between bank account and sales/purchase ledger
            Journal journal = Database.Get(new Journal()
            {
                DocumentId = (int)document.Id,
                JournalNum = 1
            });

            journal.DocumentId    = (int)document.idDocument;
            journal.JournalNum    = 1;
            journal.NameAddressId = document.DocumentNameAddressId;
            journal.Memo          = document.DocumentMemo;
            journal.AccountId     = document.DocumentAccountId;
            journal.Amount       += changeInDocumentAmount;
            journal.Outstanding  += changeInOutstanding;
            Database.Update(journal);
            journal = Database.Get(new Journal()
            {
                DocumentId = (int)document.Id,
                JournalNum = 2
            });
            journal.DocumentId    = (int)document.idDocument;
            journal.JournalNum    = 2;
            journal.NameAddressId = document.DocumentNameAddressId;
            journal.Memo          = document.DocumentMemo;
            journal.AccountId     = (int)LedgerAccount;
            journal.Amount       -= changeInDocumentAmount;
            journal.Outstanding  -= changeInOutstanding;
            Database.Update(journal);
            Line line = Database.Get(new Line()
            {
                idLine = journal.idJournal
            });

            line.idLine      = journal.idJournal;
            line.LineAmount += PaymentDoc == DocType.BillPayment ? -changeInDocumentAmount : changeInDocumentAmount;
            Database.Update(line);
            oldDoc = PaymentGetAudit(document.idDocument);
            Database.AuditUpdate("Payment", document.idDocument, oldDoc == null ? null : oldDoc.ToJObject(), json.ToJObject());
            Database.Commit();
            return(new AjaxReturn()
            {
                message = "Payment saved", id = document.idDocument
            });
        }
Exemplo n.º 20
0
 protected abstract void calculatePaymentChanges(PaymentDocument json, decimal amount, out decimal changeInDocumentAmount, out decimal changeInOutstanding);
Exemplo n.º 21
0
 public SalesUnitPayment(SalesUnit salesUnit, PaymentActual payment, PaymentDocument paymentDocument)
 {
     SalesUnit       = salesUnit;
     Payment         = payment;
     PaymentDocument = paymentDocument;
 }