public Returner AddFT(FinancialTransaction Ft) { Ft.Confirmed = false; db.FinancialTransactions.Add(Ft); db.SaveChanges(); return(new Returner { Data = Ft.Id, Message = Message.Financial_Transaction_Saved_Successfully }); }
public Returner AddImprest(FinancialTransaction FT) { var Employee = db.Employees.Single(p => p.Id == this.Id); FT.Statement = "اضافة عهدة لعميل"; FT.FromAccount = Employee.ImprestAccID; FT.Confirmed = false; FT.TransactionDate = DateTime.UtcNow.AddHours(3); db.FinancialTransactions.Add(FT); db.SaveChanges(); return(new Returner { Message = Message.Imprest_Added_Successfully }); }
public Returner SaveWorkOrder(List <CustomerInvoiceLine> CIL, DateTime Date, int ProjID, int Acc, string Notes, double Total, int EditBy) { var CurrentProject = db.Projects.Where(p => p.Id == ProjID).SingleOrDefault(); foreach (CustomerInvoiceLine item in CIL) { var CurrentStock = db.Stocks.Single(p => p.ProjectID == ProjID && p.ProductID == item.ProductId); CurrentStock.Quantity -= item.Qty; db.SaveChanges(); StockTransaction ST = new StockTransaction(); ST.Date = Date; ST.StockID = CurrentStock.Id; ST.ProductID = item.ProductId; ST.Quantity = -item.Qty; ST.Type = (int)StockTransactionsTypes.امر_عمل; db.StockTransactions.Add(ST); db.SaveChanges(); var CurrentProduct = db.Products.Single(p => p.Id == item.ProductId); FinancialTransaction Ft = new FinancialTransaction(); Ft.Debit = item.Total; Ft.Credit = 0; Ft.LastEditBy = EditBy; Ft.Confirmed = false; Ft.Notes = Notes; Ft.Statement = "امر شغل " + " بتاريخ " + Date.ToString("MM/dd/yyyy"); Ft.TransactionDate = Date; Ft.FromAccount = CurrentProject.AccountID; Ft.ReferanceDocumentNumber = ST.Id; db.FinancialTransactions.Add(Ft); FinancialTransaction Ft1 = new FinancialTransaction(); Ft1.Credit = item.Total; Ft1.LastEditBy = EditBy; Ft1.Confirmed = false; Ft1.Notes = Notes; Ft1.Statement = "امر شغل " + " بتاريخ " + Date.ToString("MM/dd/yyyy"); Ft1.TransactionDate = Date; Ft1.FromAccount = CurrentProduct.AccountID; db.FinancialTransactions.Add(Ft1); } db.SaveChanges(); return(new Returner { Message = Message.Work_Order_Saved_Successfully }); }
public Returner Add(List <CustomerInvoiceLine> LOSIL) { db.CustomerInvoices.Add(this); db.SaveChanges(); foreach (CustomerInvoiceLine item in LOSIL) { item.InvoiceId = this.Id; db.CustomerInvoiceLines.Add(item); db.SaveChanges(); } new Stock().Sells(this.Id); var Cussss = db.Customers.Single(p => p.ID == this.CustomerID); FinancialTransaction Ft = new FinancialTransaction(); Ft.Confirmed = false; Ft.Debit = 0; Ft.Credit = this.InvoiceNet; Ft.FromAccount = 42;//sales account Ft.Notes = ""; Ft.ReferanceDocumentNumber = this.Id; Ft.Statement = "تسجيل فاتورة بيع للعميل " + Cussss.Name; Ft.TransactionDate = DateTime.Now; db.FinancialTransactions.Add(Ft); db.SaveChanges(); FinancialTransaction Ft1 = new FinancialTransaction(); Ft1.Confirmed = false; Ft1.Debit = this.InvoiceNet; Ft1.Credit = 0; Ft1.FromAccount = Cussss.AccountID;//Customer account Ft1.Notes = ""; Ft1.ReferanceDocumentNumber = this.Id; Ft1.Statement = "تسجيل فاتورة بيع للعميل " + Cussss.Name; Ft1.TransactionDate = DateTime.Now; db.FinancialTransactions.Add(Ft1); db.SaveChanges(); return(new Returner { Message = Message.Invoice_Added_Successfully }); }
public Returner Add(List <SupplierInvoiceLine> LOSIL) { db.SupplierInvoices.Add(this); db.SaveChanges(); foreach (SupplierInvoiceLine item in LOSIL) { item.InvoiceId = this.Id; db.SupplierInvoiceLines.Add(item); db.SaveChanges(); } new Stock().Purchases(this.Id); FinancialTransaction Ft = new FinancialTransaction(); Ft.Confirmed = false; Ft.Debit = this.InvoiceNet; Ft.Credit = 0; Ft.FromAccount = 52;//purchases account Ft.Notes = ""; Ft.ReferanceDocumentNumber = this.Id; Ft.Statement = "تسجيل فاتورة شراء للعميل " + this.Supplier.Name; Ft.TransactionDate = DateTime.Now; db.FinancialTransactions.Add(Ft); db.SaveChanges(); FinancialTransaction Ft1 = new FinancialTransaction(); Ft1.Confirmed = false; Ft1.Debit = this.InvoiceNet; Ft1.Credit = 0; Ft1.FromAccount = this.Supplier.AccountingID;//sales account Ft1.Notes = ""; Ft1.ReferanceDocumentNumber = this.Id; Ft1.Statement = "تسجيل فاتورة شراء للعميل " + this.Supplier.Name; Ft1.TransactionDate = DateTime.Now; db.FinancialTransactions.Add(Ft1); db.SaveChanges(); return(new Returner { Message = Message.Invoice_Added_Successfully }); }
public Returner Depart(int EditBy) { var ITD = db.CustomerInvoices.Where(p => p.Id == this.Id).SingleOrDefault(); ITD.Departed = true; db.SaveChanges(); FinancialTransaction Ft = new FinancialTransaction(); Ft.Credit = ITD.InvoiceNet; Ft.Debit = 0; Ft.LastEditBy = EditBy; Ft.Notes = ""; Ft.Confirmed = false; Ft.Statement = "ترحيل فاتورة بيع"; Ft.FromAccount = ITD.Customer.AccountID; Ft.TransactionDate = DateTime.UtcNow.AddHours(3); db.FinancialTransactions.Add(Ft); db.SaveChanges(); return(new Returner { Message = Message.Invoice_Departed_Successfully }); }
public Returner AddPenalty(FinancialTransaction FT) { var Employee = db.Employees.Single(p => p.Id == this.Id); FT.Statement = "اضافة جزاء لعميل"; FT.FromAccount = Employee.PenaltyAccID; FT.Confirmed = false; FT.TransactionDate = DateTime.UtcNow.AddHours(3); db.FinancialTransactions.Add(FT); db.SaveChanges(); Payroll PR = new Payroll(); PR.Amount = FT.Credit; PR.Date = DateTime.Now; PR.EmpID = Employee.Id; PR.Type = (int)PayrollTypes.Penality; db.Payrolls.Add(PR); db.SaveChanges(); return(new Returner { Message = Message.Penalty_Added_Successfully }); }
public Returner PayInstallment(int ID, int EditBy, DateTime PaymentDate, int RecievableAcc) { var Installment = db.Installments.Where(p => p.Id == ID).SingleOrDefault(); Installment.PaymentDate = PaymentDate; db.SaveChanges(); FinancialTransaction Ft = new FinancialTransaction(); Ft.Credit = 0; Ft.Debit = Installment.Amount; Ft.FromAccount = Installment.Customer.AccountID; Ft.LastEditBy = EditBy; Ft.Notes = ""; Ft.ReferanceDocumentNumber = Installment.Id; Ft.Confirmed = false; Ft.Statement = "دفع قسط " + Enum.GetName(typeof(UnitTypes), Installment.Contract.ProjectUnit.UnitType) + " من العميل " + Installment.Customer.Name; Ft.TransactionDate = PaymentDate; db.FinancialTransactions.Add(Ft); FinancialTransaction Ft1 = new FinancialTransaction(); Ft1.Debit = 0; Ft1.Credit = Installment.Amount; Ft1.FromAccount = RecievableAcc;//Installment.Contract.ProjectUnit.AccountingID; Ft1.ReferanceDocumentNumber = Installment.Id; Ft1.LastEditBy = EditBy; Ft1.Notes = ""; Ft1.Confirmed = false; Ft1.Statement = "دفع قسط " + Enum.GetName(typeof(UnitTypes), Installment.Contract.ProjectUnit.UnitType) + " من العميل " + Installment.Customer.Name; Ft1.TransactionDate = PaymentDate; db.FinancialTransactions.Add(Ft); db.SaveChanges(); return(new Returner { Message = Message.Installment_Paid_Successfully }); }
public Returner Pay(double Total, int EditBy, DateTime PaymentDate, int ToAcc) { var E = db.Employees.Single(p => p.Id == this.Id); var lastTransaction = db.Payrolls.Where(p => p.EmpID == E.Id && p.Type == (int)PayrollTypes.Salary).OrderByDescending(p => p.Date).FirstOrDefault(); if (lastTransaction != null) { switch (E.SalaryType) { case 1: if (PaymentDate < ((DateTime)lastTransaction.Date).AddHours(24)) { return(new Returner { Message = Message.Cannot_pay_salary_at_Wrong_time }); } break; case 2: if (PaymentDate < ((DateTime)lastTransaction.Date).AddDays(15)) { return(new Returner { Message = Message.Cannot_pay_salary_at_Wrong_time }); } break; case 3: if (PaymentDate < ((DateTime)lastTransaction.Date).AddDays(30)) { return(new Returner { Message = Message.Cannot_pay_salary_at_Wrong_time }); } break; case 4: if (PaymentDate < ((DateTime)lastTransaction.Date).AddDays(7)) { return(new Returner { Message = Message.Cannot_pay_salary_at_Wrong_time }); } break; } } Payroll PR = new Payroll(); PR.Amount = Total; PR.Date = PaymentDate; PR.EmpID = E.Id; PR.Type = (int)PayrollTypes.Salary; db.Payrolls.Add(PR); db.SaveChanges(); FinancialTransaction Ft = new FinancialTransaction(); Ft.Debit = Total; Ft.Credit = 0; Ft.FromAccount = E.EmpAccID; Ft.LastEditBy = EditBy; Ft.Notes = ""; Ft.Statement = "دفع راتب للموظف " + E.Name; Ft.Confirmed = false; Ft.TransactionDate = PaymentDate; db.FinancialTransactions.Add(Ft); FinancialTransaction Ft1 = new FinancialTransaction(); Ft1.Credit = Total; Ft1.Debit = 0; Ft1.FromAccount = ToAcc; Ft1.LastEditBy = EditBy; Ft1.Notes = ""; Ft1.Statement = "دفع راتب للموظف " + E.Name; Ft1.Confirmed = false; Ft1.TransactionDate = PaymentDate; db.FinancialTransactions.Add(Ft); db.SaveChanges(); return(new Returner { Message = Message.Salary_Paid_Successfully }); }
public Returner CreateContract(List <ContractOwner> LOCO, List <Installment> I, ProjectUnit PU, int OwnerID, int EditBy, int RecievableAcc) { db.Contracts.Add(this); db.SaveChanges(); var CurrentContract = db.Contracts.Where(p => p.Id == this.Id).SingleOrDefault(); foreach (ContractOwner CO in LOCO) { CurrentContract.ContractOwners.Add(CO); } db.SaveChanges(); CurrentContract = db.Contracts.Where(p => p.Id == this.Id).SingleOrDefault(); foreach (Installment III in I) { CurrentContract.Installments.Add(III); } db.SaveChanges(); CurrentContract = db.Contracts.Where(p => p.Id == this.Id).SingleOrDefault(); var CustomerIIDD = CurrentContract.Installments.FirstOrDefault().ResponsibleID; var CurrentCustomer = db.Customers.Single(p => p.ID == CustomerIIDD); var CurrentProjectUnit = db.ProjectUnits.Single(p => p.Id == CurrentContract.UnitID); FinancialTransaction Ft = new FinancialTransaction(); Ft.Credit = CurrentContract.Price; Ft.Debit = 0; Ft.FromAccount = CurrentCustomer.AccountID; Ft.ReferanceDocumentNumber = CurrentContract.Id; Ft.LastEditBy = EditBy; Ft.Notes = ""; Ft.Statement = "عقد بيع " + Enum.GetName(typeof(UnitTypes), CurrentProjectUnit.UnitType) + " للعميل " + CurrentCustomer.Name; Ft.Confirmed = false; Ft.TransactionDate = CurrentContract.Date; db.FinancialTransactions.Add(Ft); FinancialTransaction Ft6 = new FinancialTransaction(); Ft6.Credit = 0; Ft6.Debit = CurrentContract.Price; Ft6.FromAccount = 42;//حساب المبيعات Ft6.ReferanceDocumentNumber = CurrentContract.Id; Ft6.LastEditBy = EditBy; Ft6.Notes = ""; Ft6.Statement = "عقد بيع " + Enum.GetName(typeof(UnitTypes), CurrentProjectUnit.UnitType) + " للعميل " + CurrentCustomer.Name; Ft6.Confirmed = false; Ft6.TransactionDate = CurrentContract.Date; db.FinancialTransactions.Add(Ft6); FinancialTransaction Ft1 = new FinancialTransaction(); Ft1.Debit = CurrentContract.Paid; Ft1.Credit = 0; Ft1.LastEditBy = EditBy; Ft1.Confirmed = false; Ft1.ReferanceDocumentNumber = CurrentContract.Id; Ft1.Notes = ""; Ft1.Statement = "دفع مقدم بيع " + Enum.GetName(typeof(UnitTypes), CurrentProjectUnit.UnitType) + " للعميل " + CurrentCustomer.Name; Ft1.FromAccount = CurrentCustomer.AccountID; Ft1.TransactionDate = CurrentContract.Date; db.FinancialTransactions.Add(Ft1); FinancialTransaction Ft10 = new FinancialTransaction(); Ft10.Debit = 0; Ft10.Credit = CurrentContract.Paid; Ft10.LastEditBy = EditBy; Ft10.Confirmed = false; Ft10.ReferanceDocumentNumber = CurrentContract.Id; Ft10.Notes = ""; Ft10.Statement = "دفع مقدم بيع " + Enum.GetName(typeof(UnitTypes), CurrentProjectUnit.UnitType) + " للعميل " + CurrentCustomer.Name; Ft10.FromAccount = RecievableAcc; Ft10.TransactionDate = CurrentContract.Date; db.FinancialTransactions.Add(Ft10); //foreach (Installment ite in CurrentContract.Installments) //{ // FinancialTransaction Ft2 = new FinancialTransaction(); // Ft2.Amount = ite.Amount; // Ft2.FromAccount = CurrentCustomer.AccountID; // Ft2.LastEditBy = EditBy; // Ft2.Notes = ""; // Ft2.Statement = "قسط بيع " + Enum.GetName(typeof(UnitTypes), CurrentProjectUnit.UnitType) + " للعميل " + CurrentCustomer.Name; // Ft2.ToAccount = 42; // Ft2.Confirmed = false; // Ft2.TransactionDate = ite.DueDate; // Ft2.ReferanceDocumentNumber = ite.Id; // db.FinancialTransactions.Add(Ft2); //} db.SaveChanges(); var ProjU = db.ProjectUnits.Where(p => p.Id == PU.Id).SingleOrDefault(); ProjU.Owner = OwnerID; db.SaveChanges(); return(new Returner { Data = CurrentContract, Message = Message.Contract_Created_Successfully }); }