示例#1
0
 private static SalesInvoice CreateInvoice(int i)
 {
     var inv = new SalesInvoice()
     {
         Date = Faker.DateTimeFaker.BirthDay(),// FastDateTime.Now.AddMinutes(r.Next(60)),
         Serial = i % 10000,
         CustomerName = Faker.NameFaker.Name(),// "Me " + i % 10,
         NoCase = "Me " + i % 10,
         Status = (byte)(i % 4),
         Address = Faker.LocationFaker.Street(), //"df asd sdf asdf asdf",
         Approved = i % 100 == 0 ? true : false
     };
     inv.Items = new List<LineItem>();
     for (int k = 0; k < 5; k++)
         inv.Items.Add(new LineItem() { Product = "prod " + k, Discount = 0, Price = 10 + k, QTY = 1 + k });
     return inv;
 }
示例#2
0
        private static SalesInvoice CreateInvoice(int i)
        {
            var inv = new SalesInvoice()
            {
                Date         = Faker.DateTimeFaker.BirthDay(), // FastDateTime.Now.AddMinutes(r.Next(60)),
                Serial       = i % 10000,
                CustomerName = Faker.NameFaker.Name(),         // "Me " + i % 10,
                NoCase       = "Me " + i % 10,
                Status       = (byte)(i % 4),
                Address      = Faker.LocationFaker.Street(), //"df asd sdf asdf asdf",
                Approved     = i % 100 == 0 ? true : false
            };

            inv.Items = new List <LineItem>();
            for (int k = 0; k < 5; k++)
            {
                inv.Items.Add(new LineItem()
                {
                    Product = "prod " + k, Discount = 0, Price = 10 + k, QTY = 1 + k
                });
            }
            return(inv);
        }
示例#3
0
        public void CanInsertSalesInvoice()
        {
            SalesInvoice newInvoice = new SalesInvoice();
            var          repo       = new InventoryRepositoryADO();

            newInvoice.CarId           = 23;
            newInvoice.StateId         = 1;
            newInvoice.ZipCode         = "44857";
            newInvoice.PurchaseTypeId  = 1;
            newInvoice.UserEmail       = "*****@*****.**";
            newInvoice.ContactName     = "Amy Samsonite";
            newInvoice.SalesPerson     = "Austyn Hill";
            newInvoice.TelephoneNumber = "356-555-4321";
            newInvoice.StreetAddress1  = "123 Somewhere Street";
            newInvoice.StreetAddress2  = "Apt 2";
            newInvoice.City            = "Norwalk";
            newInvoice.PurchaseTypeId  = 1;
            newInvoice.Total           = 15050M;

            repo.Insert(newInvoice);

            Assert.AreEqual(27, newInvoice.InvoiceId);
        }
        public void Update(SalesInvoiceComplex source)
        {
            #region 取資料


            #endregion

            #region 邏輯驗證


            #endregion

            #region 變為Models需要之型別及邏輯資料
            SalesInvoice main = GetSalesInvoiceOnUpdate(source);

            List <SalesInvoiceDetail> children = GetChildOnCreate(main, source);
            #endregion

            #region Models資料庫

            this._Repository.Update(main);

            foreach (SalesInvoiceDetail item in children)
            {
                if (item.SeqNo == 0)
                {
                    this._DetailRepository.Create(item);
                }
                else
                {
                    this._DetailRepository.Update(item);
                }
            }

            this._UnitOfWork.SaveChange();
            #endregion
        }
示例#5
0
        public IActionResult Create([FromBody] SalesInvoiceDTO salesDTO)
        {
            SalesInvoice sales = new SalesInvoice();

            sales.Amount           = salesDTO.Amount;
            sales.AmountDue        = salesDTO.AmountDue;
            sales.CustomerIdFk     = salesDTO.CustomerIdFk;
            sales.CustomerName     = salesDTO.CustomerName;
            sales.Discount         = salesDTO.Discount;
            sales.IsActive         = salesDTO.IsActive;
            sales.ModeOfPayment    = salesDTO.ModeOfPayment;
            sales.NotesToCustomer  = sales.NotesToCustomer;
            sales.PaymentDate      = salesDTO.PaymentDate;
            sales.PaymentTerm      = salesDTO.PaymentTerm;
            sales.PO_WOno          = salesDTO.PO_WOno;
            sales.Product          = salesDTO.Product;
            sales.Quantity         = salesDTO.Quantity;
            sales.Rate             = salesDTO.Rate;
            sales.Revenue          = salesDTO.Revenue;
            sales.SalesInvoiceDate = salesDTO.SalesInvoiceDate;
            sales.SalesInvoiceNo   = salesDTO.SalesInvoiceNo;
            //  sales.SalesOrdernoFk = salesDTO.SalesOrdernoFk;
            sales.ShippingAndHandling = salesDTO.ShippingAndHandling;
            sales.SubTotal            = salesDTO.SubTotal;
            sales.Tax   = salesDTO.Total;
            sales.Total = salesDTO.Total;



            //productType.CreatedBy = User.Identity.Name;
            var salesEntity = _salesinvoiceService.Create(sales);

            //var saleinvoice = _mapper.Map<PurchaseOrderDTO>(salesEntity);


            return(Ok(sales));
        }
示例#6
0
        public Guid CreatePlanningTransaction(Session session, Guid billId, DateTime _PaymentDate, string _Name, double _Amount, string _Description, Guid _CurrencyId)
        {
            SaleInvoiceTransaction newTransaction = new SaleInvoiceTransaction(session);

            try
            {
                AccountingBO accountingBO = new AccountingBO();
                SalesInvoice salesInvoice = session.GetObjectByKey <SalesInvoice>(billId);
                Currency     currency     = session.GetObjectByKey <Currency>(_CurrencyId);

                CriteriaOperator filter  = new BinaryOperator("Code", DefaultAccountEnum.NAAN_DEFAULT.ToString(), BinaryOperatorType.Equal);
                Account          account = session.FindObject <Account>(filter);

                if (salesInvoice == null || currency == null || account == null)
                {
                    return(Guid.Empty);
                }

                newTransaction.IssueDate      = _PaymentDate;
                newTransaction.Code           = _Name;
                newTransaction.Amount         = _Amount;
                newTransaction.Description    = _Description;
                newTransaction.RowStatus      = Utility.Constant.ROWSTATUS_ACTIVE;
                newTransaction.SalesInvoiceId = salesInvoice;
                newTransaction.CreateDate     = DateTime.Now;
                newTransaction.UpdateDate     = DateTime.Now;
                newTransaction.Save();

                accountingBO.CreateGeneralJournal(session, newTransaction.TransactionId, account.AccountId, Constant.PLANNING_JOURNAL, _Name, _Amount, 0, Constant.ROWSTATUS_ACTIVE, _CurrencyId);
                accountingBO.CreateGeneralJournal(session, newTransaction.TransactionId, account.AccountId, Constant.PLANNING_JOURNAL, _Name, 0, _Amount, Constant.ROWSTATUS_ACTIVE, _CurrencyId);
            }
            catch (Exception)
            {
                throw;
            }
            return(newTransaction.TransactionId);
        }
示例#7
0
 /// <summary>
 /// Конвертация в накладную продаж
 /// </summary>
 /// <param name="client">Накладная продаж БД</param>
 /// <returns>Накладная продаж</returns>
 public static SalesInvoice Convert(SalesInvoiceEnt sales, bool logic = true)
 {
     if (sales != null)
     {
         CompanyCustomer companyСustomer = null;
         ClientUser      clientUser      = null;
         Employee        employee        = null;
         if (logic == true)
         {
             companyСustomer = Convert(sales.CompanyСustomer, false);
             clientUser      = Convert(sales.ClientUser, false);
             employee        = Convert(sales.Employee, false);
         }
         List <Product> products = new List <Product>();
         foreach (var item in sales.ProductEnts)
         {
             products.Add(Convert(item));
         }
         SalesInvoice ent = new SalesInvoice
         {
             ClientUser        = clientUser,
             Date              = sales.Date,
             ClientUserId      = sales.ClientUserId,
             CompanyCustomerId = sales.CompanyCustomerId,
             EmployeeId        = sales.EmployeeId,
             Description       = sales.Description,
             CompanyСustomer   = companyСustomer,
             Employee          = employee,
             Id        = sales.Id,
             Archiving = sales.Archiving,
             Product   = products,
             Status    = sales.Status
         };
         return(ent);
     }
     return(null);
 }
        public dynamic UnConfirm(SalesInvoice model)
        {
            try
            {
                if (!AuthenticationModel.IsAllowed("UnConfirm", Core.Constants.Constant.MenuName.SalesInvoice, Core.Constants.Constant.MenuGroupName.Transaction))
                {
                    Dictionary <string, string> Errors = new Dictionary <string, string>();
                    Errors.Add("Generic", "You are Not Allowed to UnConfirm record");

                    return(Json(new
                    {
                        Errors
                    }, JsonRequestBehavior.AllowGet));
                }

                var data = _salesInvoiceService.GetObjectById(model.Id);
                model = _salesInvoiceService.UnconfirmObject(data, _salesInvoiceDetailService, _deliveryOrderService,
                                                             _deliveryOrderDetailService, _receiptVoucherDetailService, _receivableService);
            }
            catch (Exception ex)
            {
                LOG.Error("Unconfirm Failed", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

                return(Json(new
                {
                    Errors
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                model.Errors
            }));
        }
示例#9
0
 public void CreateFinancialRevenueByItem(Session session,
                                          Guid _BillId,
                                          Guid _CuntomerOrgId,
                                          Guid _OwnerOrgId,
                                          Item _Item,
                                          Unit _unit,
                                          string _AssetDim)
 {
     try{
         SalesInvoice invoice = session.GetObjectByKey <SalesInvoice>(_BillId);
         if (invoice == null)
         {
             return;
         }
         DateTime issueDate = invoice.IssuedDate;
         int      Day       = issueDate.Day;
         int      Month     = issueDate.Month;
         int      Year      = issueDate.Year;
         CreateFinancialRevenueByItem(session, _BillId, _CuntomerOrgId, _OwnerOrgId, _Item, _unit, _AssetDim);
     }catch (Exception)
     {
         return;
     }
 }
示例#10
0
            /// <summary>
            /// Parse Invoices from Transaction Service response data.
            /// </summary>
            /// <param name="responseData">The transaction service response data.</param>
            /// <returns>Array of SalesInvoice objects parsed.</returns>
            internal static SalesInvoice[] GetInvoicesFromArray(ReadOnlyCollection <object> responseData)
            {
                List <SalesInvoice> invoices = new List <SalesInvoice>();

                if (responseData != null)
                {
                    SalesInvoice invoice;

                    // This array parsing is required to support the legacy implementation of the PaySalesInvoice transaction service API

                    // Each sales invoice consists of 8 properties in returned data bags
                    const int InvoiceLenth = 8;
                    for (int currentInvoiceStart = 0; currentInvoiceStart + InvoiceLenth <= responseData.Count; currentInvoiceStart += InvoiceLenth)
                    {
                        bool valid = Convert.ToBoolean(responseData[currentInvoiceStart]);

                        // the 2nd one is comment, which we don't care for one item
                        if (valid)
                        {
                            invoice = new SalesInvoice()
                            {
                                Id          = ConvertToStringAtIndex(responseData, currentInvoiceStart + 2),
                                AmountPaid  = ConvertToDecimalAtIndex(responseData, currentInvoiceStart + 3),
                                Amount      = ConvertToDecimalAtIndex(responseData, currentInvoiceStart + 4),
                                Account     = ConvertToStringAtIndex(responseData, currentInvoiceStart + 5),
                                Name        = ConvertToStringAtIndex(responseData, currentInvoiceStart + 6),
                                InvoiceDate = ConvertToDateTimeAtIndex(responseData, currentInvoiceStart + 7),
                            };

                            invoices.Add(invoice);
                        }
                    }
                }

                return(invoices.ToArray());
            }
示例#11
0
        public void CreateFinancialRevenueByItem(Session session,
                                                 ETL_Bill bill,
                                                 ETL_BillItem billItem)
        {
            SalesInvoice invoice = session.GetObjectByKey <SalesInvoice>(bill.BillId);

            if (invoice == null)
            {
                return;
            }
            #region customerOrg
            Guid customerOrgId = bill.CustomerOrgId;
            #endregion
            #region ownerOrg
            Guid ownerOrgId = bill.OwnerOrgId;
            #endregion
            #region ItemUnit
            Item item = billItem.item;
            if (item == null)
            {
                return;
            }
            Unit unit = billItem.unit;
            if (unit == null)
            {
                return;
            }
            #endregion
            #region AssetDim
            string assetDim = "VND";
            #endregion
            #region BillId
            Guid billId = bill.BillId;
            #endregion
            CreateFinancialRevenueByItem(session, billId, customerOrgId, ownerOrgId, item, unit, assetDim);
        }
示例#12
0
        public int ConvertToSalesInvoice(SalesOrderForm orderData)
        {
            int autoId = 0;
            //Add sales order
            SalesInvoice obj = new SalesInvoice();

            // obj.ID = orderData.Order.ID;
            obj.Cus_Id  = orderData.Order.CustomerID;
            obj.SI_Date = orderData.Order.OrderDate;

            obj.SI_GST_Amt     = Convert.ToDecimal(orderData.Order.TotalTax);
            obj.SI_No          = "SI-" + (GetLastInvoiceNo() + 1);
            obj.SI_TandC       = orderData.Order.TermsAndConditions;
            obj.SI_Tot_aft_Tax = Convert.ToDecimal(orderData.Order.TotalAfterTax);
            obj.SI_Tot_bef_Tax = Convert.ToDecimal(orderData.Order.TotalBeforeTax);
            obj.SI_Status      = 2;
            obj.Exc_Inc_GST    = orderData.Order.ExcIncGST;
            obj.IsDeleted      = false;

            try
            {
                using (SASEntitiesEDM entities = new SASEntitiesEDM())
                {
                    if (entities.SalesInvoices.AsNoTracking().FirstOrDefault(x => x.ID == orderData.Order.ID) == null)
                    {
                        //obj.CreatedBy = orderData.SOModel.CreatedBy;
                        obj.CreatedDate = DateTime.Now;
                        entities.SalesInvoices.Add(obj);
                        entities.SaveChanges();
                        autoId = obj.ID;
                    }
                    else
                    {
                        // obj.ModifiedBy = orderData.SOModel.ModifiedBy;
                        obj.ModifiedDate          = DateTime.Now;
                        entities.Entry(obj).State = EntityState.Modified;
                        autoId = entities.SaveChanges();
                    }
                    if (autoId > 0)
                    {
                        SalesInvoiceDetail SODetails;
                        if (orderData.OrderDetails != null)
                        {
                            foreach (SalesOrderDetailEntity SODetailEntity in orderData.OrderDetails)
                            {
                                SODetails             = new SalesInvoiceDetail();
                                SODetails.SI_ID       = autoId;
                                SODetails.SI_No       = SODetailEntity.SONo;
                                SODetails.PandS_Code  = SODetailEntity.PandSCode;
                                SODetails.PandS_Name  = SODetailEntity.PandSName;
                                SODetails.SI_Amount   = SODetailEntity.SOAmount;
                                SODetails.SI_Discount = SODetailEntity.SODiscount;
                                SODetails.SI_No       = SODetailEntity.SONo;
                                SODetails.SI_Price    = Convert.ToDecimal(SODetailEntity.SOPrice);
                                SODetails.SI_Qty      = SODetailEntity.SOQty;
                                SODetails.GST_Code    = SODetailEntity.GSTCode;
                                SODetails.GST_Rate    = SODetailEntity.GSTRate;

                                if (entities.SalesInvoiceDetails.AsNoTracking().FirstOrDefault(x => x.ID == SODetailEntity.ID) == null)
                                {
                                    entities.SalesInvoiceDetails.Add(SODetails);
                                    entities.SaveChanges();
                                }
                                else
                                {
                                    entities.Entry(SODetails).State = EntityState.Modified;
                                    entities.SaveChanges();
                                }
                                int PSId = Convert.ToInt32(SODetailEntity.SONo);
                                if (PSId != 0)
                                {
                                    ProductsAndService ps = entities.ProductsAndServices.SingleOrDefault(e => e.ID == PSId);
                                    if (ps != null)
                                    {
                                        ps.PandS_Qty_in_stock = ps.PandS_Qty_in_stock - SODetailEntity.SOQty;
                                        entities.SaveChanges();
                                    }
                                }
                            }
                        }

                        SalesOrder objQ = entities.SalesOrders.Where(e => e.SO_No == orderData.Order.OrderNo
                                                                     ).SingleOrDefault();
                        if (objQ != null)
                        {
                            objQ.SO_Conv_to_SI = true;
                            objQ.Conv_to_No    = obj.SI_No;
                            objQ.ModifiedDate  = DateTime.Now;
                            entities.SaveChanges();
                        }
                    }
                }
                return(autoId);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#13
0
        public ActionResult Invoice(FormCollection formCollection, string Command, int id)
        {
            SalesInvoice SI = new SalesInvoice();

            //  UpdateModel<SalesInvoice>(SI);
            SI.SalesInvoiceID   = Common.ParseInt(formCollection["SalesInvoiceID"]);
            SI.SalesInvoiceNo   = (formCollection["SalesInvoiceNo"]);
            SI.SalesInvoiceDate = Common.ParseDate(formCollection["SalesInvoiceDate"]);
            SI.Reference        = (formCollection["Reference"]);
            SI.LPOReference     = (formCollection["LPOReference"]);
            SI.CustomerID       = Common.ParseInt(formCollection["SelectedCustomerID"]);
            //SI.EmployeeID = Common.ParseInt(formCollection["EmployeeeID"]);
            SI.EmployeeID   = Common.ParseInt(formCollection["SelectedEmployeeID"]);
            SI.CurrencyID   = Common.ParseInt(formCollection["SelectedCurrencyID"]);
            SI.ExchangeRate = Common.ParseDecimal(formCollection["ExchangeRate"]);
            SI.CreditDays   = 0;
            SI.DueDate      = Common.ParseDate(formCollection["DueDate"]);

            SI.BranchID          = Common.ParseInt(Session["branchid"].ToString());;
            SI.Discount          = 0;
            SI.StatusDiscountAmt = false;
            SI.OtherCharges      = 0;
            SI.PaymentTerm       = "";
            SI.Remarks           = (formCollection["Remarks"]);
            SI.FYearID           = Common.ParseInt(Session["fyearid"].ToString());
            SI.DeliveryId        = Common.ParseInt(formCollection["SelectedDeliveryId"]);
            SI.QuotationNumber   = (formCollection["QuotationNumber"]);
            SI.DiscountType      = Common.ParseInt(formCollection["DiscountType"]);
            SI.DiscountValueLC   = Common.ParseDecimal(formCollection["DiscountValueLC"]);
            SI.DiscountValueFC   = Common.ParseDecimal(formCollection["DiscountValueFC"]);

            BindAllMasters();
            if (Session["UserID"] == null)
            {
                return(RedirectToAction("Login", "Login"));
            }

            if (Command == "Save")
            {
                //SI.SalesInvoiceDate = System.DateTime.UtcNow;
                var context        = new SHIPPING_FinalEntities();
                var salesinvoiceId = (from c in context.SalesInvoices orderby c.SalesInvoiceID descending select c.SalesInvoiceID).FirstOrDefault();
                salesinvoiceId = salesinvoiceId + 1;
                var Gen_salesno = salesinvoiceId.ToString("00000");

                var salesNo = "SI-" + Gen_salesno;
                SI.SalesInvoiceNo = salesNo;
                int i = 0;
                SI.AcJournalID = 0;
                SI.IsShipping  = true;
                i = SM.AddSalesInvoice(SI);
                SI.SalesInvoiceID = i;
                DeleteAndInsertRecords(formCollection, i);

                AcJournalMaster acJournalMaster = new AcJournalMaster();
                acJournalMaster.AcFinancialYearID = Convert.ToInt32(Session["fyearid"].ToString());
                acJournalMaster.AcJournalID       = objectSourceModel.GetMaxNumberAcJournalMasters();
                acJournalMaster.VoucherType       = "SI";

                int max = (from c in context.AcJournalMasters select c).ToList().Count();

                acJournalMaster.VoucherNo    = salesNo; //(max + 1).ToString();
                acJournalMaster.UserID       = Convert.ToInt32(Session["UserID"].ToString());
                acJournalMaster.TransDate    = SI.SalesInvoiceDate;
                acJournalMaster.StatusDelete = false;
                acJournalMaster.ShiftID      = null;
                acJournalMaster.Remarks      = SI.Remarks;
                acJournalMaster.AcCompanyID  = Convert.ToInt32(Session["AcCompanyID"].ToString());
                acJournalMaster.Reference    = SI.Reference;
                context.AcJournalMasters.Add(acJournalMaster);
                context.SaveChanges();

                var acmasterid = acJournalMaster.AcJournalID;
                SI.AcJournalID = acmasterid;
                SM.UpdateSalesInvoice(SI);
                if (acmasterid > 0)
                {
                    DeleteorInsertAcJounalDetails(acmasterid, i);
                }
                if (i > 0)
                {
                    Session["SalesInvoiceID"] = i;
                    SI.SalesInvoiceID         = i;
                    //return RedirectToAction("Invoice", "SalesInvoice", new { ID = i });
                    return(RedirectToAction("Index", "SalesInvoice"));
                }
            }
            else if (Command == "Update")
            {
                SI.SalesInvoiceID = id;
                var salesinvoice = (from d in entity.SalesInvoices where d.SalesInvoiceID == id select d).FirstOrDefault();
                SI.AcJournalID = salesinvoice.AcJournalID;
                if (SI.AcJournalID == null)
                {
                    SI.AcJournalID = 0;
                }
                int k = SM.UpdateSalesInvoice(SI);
                DeleteAndInsertRecords(formCollection, id);
                if (SI.AcJournalID > 0)
                {
                    DeleteorInsertAcJounalDetails(SI.AcJournalID, id);
                }
                return(RedirectToAction("Index", "SalesInvoice"));

                //return RedirectToAction("Invoice", "SalesInvoice", new { ID = SI.SalesInvoiceID });
            }
            else if (Command == "SaveInvoice")
            {
            }
            return(RedirectToAction("Index", "SalesInvoice"));

            //return View(SI);
        }
示例#14
0
        public BillToModel(SalesInvoice invoice)
        {
            var customer          = invoice.BillToEndCustomer ?? invoice.BillToCustomer;
            var contactPerson     = invoice.BillToEndCustomerContactPerson ?? invoice.BillToContactPerson;
            var contactMechanisam = invoice.BillToEndCustomerContactMechanism ?? invoice.BillToContactMechanism;

            var billTo             = customer;
            var billToOrganisation = billTo as Organisation;

            if (billTo != null)
            {
                this.Name  = billTo.PartyName;
                this.TaxId = billToOrganisation?.TaxNumber;
            }

            this.Contact = contactPerson?.PartyName;

            if (contactMechanisam is PostalAddress postalAddress)
            {
                this.Address = postalAddress.Address1;
                if (!string.IsNullOrWhiteSpace(postalAddress.Address2))
                {
                    this.Address = $"\n{postalAddress.Address2}";
                }

                if (!string.IsNullOrWhiteSpace(postalAddress.Address3))
                {
                    this.Address = $"\n{postalAddress.Address3}";
                }

                if (postalAddress.ExistCity)
                {
                    this.City  = postalAddress.City.Name;
                    this.State = postalAddress.City.State?.Name;
                }
                else if (postalAddress.ExistPostalBoundary)
                {
                    var postalBoundary = postalAddress.PostalBoundary;

                    this.City       = postalBoundary.Locality;
                    this.State      = postalBoundary.Region;
                    this.PostalCode = postalBoundary.PostalCode;
                    this.Country    = postalBoundary.Country.Name;
                }

                if (this.PostalCode == null)
                {
                    this.PostalCode = postalAddress.PostalCode?.Code;
                }

                if (this.Country == null)
                {
                    this.Country = postalAddress.Country?.Name;
                }
            }

            if (contactMechanisam is ElectronicAddress electronicAddress)
            {
                this.Address = electronicAddress.ElectronicAddressString;
            }
        }
        public IHttpActionResult CreateSalesInvoice(SalesInvoice salesInvoice)
        {
            using (TransactionScope transScope = new TransactionScope())
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                try
                {
                    int minInventory = 0;
                    //بدست آوردن حداقل موجودی برای این کالا
                    StoreHouse currentStoreHouse = db.StoreHouses.FirstOrDefault(p => p.StoreHouseId == salesInvoice.StoreHouseId);
                    if (currentStoreHouse != null)
                    {
                        Material currentMaterial = db.Materials.FirstOrDefault(p => p.MaterialId == currentStoreHouse.MaterialId);
                        minInventory = currentMaterial != null ? currentMaterial.MinInventory : 0;
                    }

                    //تعداد کالا بیشتر از حداقل موجودی نباشد
                    if (salesInvoice.Count <= 0 ||
                        salesInvoice.Count > minInventory)
                    {
                        return(BadRequest(Messages.MaterialNumberMustBeMoreThanMinInventory));
                    }


                    db.SalesInvoices.Add(salesInvoice);
                    db.SaveChanges();

                    #region Decrease Material Number
                    //کسر کردن تعداد کالای فروخته شده از انبار
                    bool decreeseSuccessed = this.DecreaseMaterialCount(salesInvoice.StoreHouseId, salesInvoice.Count);
                    if (!decreeseSuccessed)
                    {
                        transScope.Dispose();
                        return(BadRequest(Messages.DecreseMaterialError));
                    }
                    #endregion

                    #region Save Accounting Document Automatically
                    //ثبت سند حسابداری
                    bool createDocumentSuccessed = this.RegistrationAccountingDocument(salesInvoice.Date,
                                                                                       salesInvoice.Amount, salesInvoice.Count, salesInvoice.SalesInvoiceId);

                    if (!createDocumentSeccessed)
                    {
                        transScope.Dispose();
                        return(BadRequest(Messages.AccountingDocumentError));
                    }
                    #endregion

                    transScope.Complete();
                    return(CreatedAtRoute("DefaultApi", new { id = salesInvoice.SalesInvoiceId }, salesInvoice));
                }
                catch (TransactionException e)
                {
                    transScope.Dispose();
                    return(BadRequest(Messages.ErrorOccured));
                }
            }
        }
        public void Calc_Operation()
        {
            attemptValue      = 0;
            Account           = new SubAccount();
            Khazna_Moved_List = new List <KhznaMoved>();
            Bank_Moved_List   = new List <BankMoved>();
            Sales_Order_List  = new List <SalesInvoice>();
            Khazna_Moved      = new KhznaMoved();
            Bank_Moved        = new BankMoved();
            Sale_Order        = new SalesInvoice();

            // Khazna_Moved_List = Khazna_Moved.GetKhznaMoved_ByAccountIDByDate(int.Parse(AccountDropID.SelectedValue),FromDateTxt.Text,ToDateTxt.Text);
            // Bank_Moved_List = Bank_Moved.BankMoved_Between_Date_ForAccount(FromDateTxt.Text,ToDateTxt.Text, int.Parse(AccountDropID.SelectedValue));


            Khazna_Moved_List = db.KhznaMoved.ToList().Where(o => o.FinancialPostitionType == "عربة").ToList();                  //  Khazna_Moved.GetKhznaMoved_ByAccountID(int.Parse(AccountDropID.SelectedValue));
            Bank_Moved_List   = db.BankMoved.ToList().Where(o => o.FinancialPostitionType == "عربة").ToList();                   //Bank_Moved.GetBankMoved_ByAccountID(int.Parse(AccountDropID.SelectedValue));
            Sales_Order_List  = db.SalesInvoice.ToList().Where(c => c.CarId == int.Parse(AccountDropID.SelectedValue)).ToList(); //Sale_Order.GetOrdersByCustID(int.Parse(AccountDropID.SelectedValue));


            // SubAccount sub_Account = new SubAccount();
            // sub_Account = db.SubAccount.ToList().FirstOrDefault(s => s.ID == int.Parse(AccountDropID.SelectedValue));//  sub_Account.GetSubAccount_ByID(int.Parse(AccountDropID.SelectedValue)).ElementAtOrDefault(0);
            float Account_Sum = 0;//float.Parse(sub_Account.ABalance.ToString());

            Account_Operations           = new AccountOperationsGrd();
            AccountOperations_List       = new List <AccountOperationsGrd>();
            Account_Mony_Operations_List = new List <KhznaMoved>();
            Account_Operations_List      = new List <AccountOperationsGrd>();
            List <AccountOperationsGrd> FinalGrd = new List <AccountOperationsGrd>();
            List <AccountOperationsGrd> LastGrd  = new List <AccountOperationsGrd>();

            //  DateTime.Parse(operation.Date.ToString()).Year
            //DateTime RD= DateTime.ParseExact(sub_Account.RegisterDate.ToString(), "yyyy-MM-dd", null);

            //if (sub_Account.BType == "دائن")
            //{
            //    FinalGrd.Add(new AccountOperationsGrd()
            //    {
            //        OperationID = 0,
            //        OperationDate = (DateTime)sub_Account.RegisterDate,

            //        CreditBalance = float.Parse(sub_Account.ABalance.ToString()),
            //        Credit_Movement = 0,
            //        IndebtBalance = 0,
            //        InDebt_Movement = 0,
            //        Description = "رصيد افتتاحى",
            //        State = sub_Account.BType

            //    });
            //}
            //else
            //{
            //    FinalGrd.Add(new AccountOperationsGrd()
            //    {

            //        OperationID = 0,
            //        OperationDate = (DateTime)sub_Account.RegisterDate,

            //        CreditBalance = 0,
            //        Credit_Movement = 0,
            //        IndebtBalance = float.Parse(sub_Account.ABalance.ToString()),
            //        InDebt_Movement = 0,
            //        Description = "رصيد افتتاحى",
            //        State = sub_Account.BType
            //    });
            //}

            //  LastGrd.Add(FinalGrd[0]);
            //كل العمليات مع الخزنة الخاصة بaccount
            foreach (var Khazna in Khazna_Moved_List)
            {
                Account_Mony_Operations_List.Add(new KhznaMoved
                {
                    ID          = Khazna.ID,
                    state       = Khazna.state == true ? false : true,
                    Value       = Khazna.Value,
                    Description = Khazna.Description,
                    AccountID   = Khazna.AccountID,
                    Date        = Khazna.Date
                });
            }

            //كل العمليات الواقعة على التعاملات البنكية
            foreach (var bank in Bank_Moved_List)
            {
                Account_Mony_Operations_List.Add(new KhznaMoved
                {
                    ID          = bank.ID,
                    state       = bank.state == true ? false : true,
                    Value       = bank.Value,
                    Description = bank.Description,
                    AccountID   = bank.AccountID,
                    Date        = bank.Date
                });
            }

            //فواتير البيع
            foreach (var Sale in Sales_Order_List)
            {
                Account_Mony_Operations_List.Add(new KhznaMoved
                {
                    ID          = int.Parse(Sale.Id),
                    state       = bool.Parse(Sale.PurchaseType.ToString()),
                    Value       = decimal.Parse(Sale.Total.ToString()),
                    Description = bool.Parse(Sale.PurchaseType.ToString()) ? "اذن صرف" : "مرتجع بضاعة",
                    AccountID   = Sale.CarId,
                    Date        = DateTime.Parse(Sale.InvoiceDate.ToString(), CultureInfo.CreateSpecificCulture("ar-EG"))
                });
            }

            // Account_Mony_Operations_List.OrderBy(a => a.Date);


            //Concatination//////////////////////////////////////////////////////////////////////////////////////////////////////////

            ConcatenationLists(Account_Mony_Operations_List, Account_Operations_List, Account_Sum);
            //الشغل على Account_Operations_List
            int i = 1;

            Account_Operations_List = Account_Operations_List.OrderBy(o => o.OperationDate).ToList();
            FinalGrd.Add(Account_Operations_List[0]);
            Account_Operations_List.RemoveAt(0);
            attemptValue = FinalGrd[0].State == "دائن" ? FinalGrd[0].CreditBalance : FinalGrd[0].IndebtBalance;
            string CurrentState = "";

            foreach (var operation in Account_Operations_List)
            {
                //CurrentState = FinalGrd[i - 1].State == "مدين" ? Math.Sign(attemptValue + operation.InDebt_Movement - operation.Credit_Movement) >= 0 ? "مدين" : "دائن" :
                //     Math.Sign(attemptValue +  operation.Credit_Movement- operation.InDebt_Movement) >= 0 ? "دائن" : "مدين";

                if (FinalGrd[i - 1].State == "مدين")
                {
                    if (operation.InDebt_Movement > 0)
                    {
                        attemptValue = Math.Abs(attemptValue + operation.InDebt_Movement - operation.Credit_Movement);
                        if (attemptValue > 0)
                        {
                            CurrentState = "مدين";
                        }
                        else
                        {
                            CurrentState = "دائن";
                        }
                    }
                    else
                    {
                        attemptValue = (attemptValue - operation.Credit_Movement + operation.InDebt_Movement);
                        if (attemptValue > 0)
                        {
                            CurrentState = "مدين";
                        }
                        else
                        {
                            CurrentState = "دائن";
                            attemptValue = -attemptValue;
                        }
                    }
                }
                else
                {
                    if (operation.Credit_Movement > 0)
                    {
                        attemptValue = Math.Abs(attemptValue + operation.Credit_Movement - operation.InDebt_Movement);
                        if (attemptValue > 0)
                        {
                            CurrentState = "دائن";
                        }
                        else
                        {
                            CurrentState = "مدين";
                        }
                    }
                    else
                    {
                        attemptValue = (attemptValue - operation.InDebt_Movement + operation.Credit_Movement);
                        if (attemptValue > 0)
                        {
                            CurrentState = "دائن";
                        }
                        else
                        {
                            CurrentState = "مدين";
                            attemptValue = -attemptValue;
                        }
                    }
                }
                if (CurrentState == "دائن")
                {
                    FinalGrd.Add(new AccountOperationsGrd()
                    {
                        CreditBalance   = attemptValue,
                        Credit_Movement = operation.Credit_Movement,
                        IndebtBalance   = operation.IndebtBalance,
                        InDebt_Movement = operation.InDebt_Movement,
                        Description     = operation.Description,
                        OperationDate   = operation.OperationDate,
                        OperationID     = operation.OperationID,
                        State           = "دائن",
                        OperationType   = operation.OperationType
                    });
                }
                else
                {
                    //if (operation.InDebt_Movement  > 0)
                    //{
                    //    attemptValue = Math.Abs(attemptValue + operation.InDebt_Movement - operation.Credit_Movement);
                    //}
                    //else
                    //{
                    //    attemptValue = Math.Abs(attemptValue + operation.Credit_Movement - operation.InDebt_Movement);
                    //}

                    FinalGrd.Add(new AccountOperationsGrd()
                    {
                        CreditBalance   = operation.CreditBalance,
                        Credit_Movement = operation.Credit_Movement,
                        IndebtBalance   = attemptValue,// operation.IndebtBalance,
                        InDebt_Movement = operation.InDebt_Movement,
                        Description     = operation.Description,
                        OperationDate   = operation.OperationDate,
                        OperationID     = operation.OperationID,
                        State           = "مدين",
                        OperationType   = operation.OperationType
                    });
                }



                i++;
            }



            ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            // Account_Operations_List = Account_Operations_List.OrderBy(o => o.OperationDate).ToList();
            string fromdate = FromDateTxt.Text; //DateTime.Parse(FromDateTxt.Text).Year + "-" + DateTime.Parse(FromDateTxt.Text).Month + "-" + DateTime.Parse(FromDateTxt.Text).Day;
            string Todate   = ToDateTxt.Text;   //DateTime.Parse(ToDateTxt.Text).Year + "-" + DateTime.Parse(ToDateTxt.Text).Month + "-" + DateTime.Parse(ToDateTxt.Text).Day;
            var    mydate   = DateTime.Parse(fromdate, CultureInfo.CreateSpecificCulture("ar-EG"));
            var    mydateTo = DateTime.Parse(Todate, CultureInfo.CreateSpecificCulture("ar-EG"));

            LastGrd.Add(FinalGrd.Where(o => o.OperationDate <= mydate).LastOrDefault());
            if (LastGrd.Last() == null)
            {
                LastGrd.Remove(LastGrd.Last());
            }
            LastGrd.AddRange(FinalGrd.Where(o => o.OperationDate >= mydate & o.OperationDate <= mydateTo));
            AccountGrd.DataSource = LastGrd;// FinalGrd.Where(o => o.OperationDate < DateTime.Parse(fromdate)).LastOrDefault() && o.OperationDate >= DateTime.Parse(fromdate) & o.OperationDate <= DateTime.Parse(Todate) ); //Account_Operations_List.Where(o=>o.OperationDate >= DateTime.Parse(FromDateTxt.Text) &  o.OperationDate <= DateTime.Parse(ToDateTxt.Text));
            AccountGrd.DataBind();
        }
示例#17
0
 public bool ValidCreateObject(SalesInvoice salesInvoice, IDeliveryOrderService _deliveryOrderService)
 {
     VCreateObject(salesInvoice, _deliveryOrderService);
     return(isValid(salesInvoice));
 }
示例#18
0
        public int UpdationInvoice(SalesInvoiceForm invoiceData)
        {
            try
            {
                using (SDNSalesDBEntities entities = new SDNSalesDBEntities())
                {
                    SalesInvoice obj = entities.SalesInvoices.Where(e => e.SI_No == invoiceData.Invoice.InvoiceNo
                                                                    ).SingleOrDefault();
                    if (obj != null)
                    {
                        //obj.ID = invoiceData.Invoice.ID;
                        obj.Cus_Id = invoiceData.Invoice.CustomerID;

                        obj.SI_Date        = invoiceData.Invoice.InvoiceDate;
                        obj.SI_GST_Amt     = Convert.ToDecimal(invoiceData.Invoice.TotalTax);
                        obj.SI_No          = invoiceData.Invoice.InvoiceNo;
                        obj.SI_TandC       = invoiceData.Invoice.TermsAndConditions;
                        obj.SI_Tot_aft_Tax = Convert.ToDecimal(invoiceData.Invoice.TotalAfterTax);
                        obj.SI_Tot_bef_Tax = Convert.ToDecimal(invoiceData.Invoice.TotalBeforeTax);
                        //obj.SI_Pmt_Due_Date = invoiceData.Invoice.PaymentDueDate;
                        obj.Cus_PO_No      = invoiceData.Invoice.OurSONo;
                        obj.SI_Credit_Days = invoiceData.Invoice.CreditDays;
                        obj.Salesman       = invoiceData.Invoice.SalesmanID;
                        obj.Exc_Inc_GST    = invoiceData.Invoice.ExcIncGST;
                        obj.ModifiedDate   = DateTime.Now;
                        entities.SaveChanges();
                    }

                    invoiceData.Invoice.ID = obj.ID;
                    CreateCreditNote(invoiceData);

                    var objSales = entities.SalesInvoiceDetails.Where
                                       (e => e.SI_ID == obj.ID).ToList();
                    if (objSales != null)
                    {
                        foreach (var item in objSales)
                        {
                            int PSId = Convert.ToInt32(item.SI_No);
                            if (PSId != 0)
                            {
                                ProductsAndService ps = entities.ProductsAndServices.SingleOrDefault(e => e.ID == PSId);
                                if (ps != null)
                                {
                                    ps.PandS_Qty_in_stock = ps.PandS_Qty_in_stock + item.SI_Qty;
                                    entities.SaveChanges();
                                }
                            }

                            entities.SalesInvoiceDetails.Remove(item);
                            entities.SaveChanges();
                        }
                    }
                    SalesInvoiceDetail SIDetails;

                    if (invoiceData.InvoiceDetails != null)
                    {
                        foreach (SalesInvoiceDetailEntity SIDetailEntity in invoiceData.InvoiceDetails)
                        {
                            SIDetails             = new SalesInvoiceDetail();
                            SIDetails.SI_ID       = obj.ID;
                            SIDetails.SI_No       = SIDetailEntity.SINo;
                            SIDetails.PandS_Code  = SIDetailEntity.PandSCode;
                            SIDetails.PandS_Name  = SIDetailEntity.PandSName;
                            SIDetails.SI_Amount   = SIDetailEntity.SIAmount;
                            SIDetails.SI_Discount = SIDetailEntity.SIDiscount;
                            SIDetails.SI_No       = SIDetailEntity.SINo;
                            SIDetails.SI_Price    = Convert.ToDecimal(SIDetailEntity.SIPrice);
                            SIDetails.SI_Qty      = SIDetailEntity.SIQty;
                            SIDetails.GST_Code    = SIDetailEntity.GSTCode;
                            SIDetails.GST_Rate    = SIDetailEntity.GSTRate;

                            entities.SalesInvoiceDetails.Add(SIDetails);
                            entities.SaveChanges();

                            int PSId = Convert.ToInt32(SIDetailEntity.SINo);
                            if (PSId != 0)
                            {
                                ProductsAndService ps = entities.ProductsAndServices.SingleOrDefault(e => e.ID == PSId);
                                if (ps != null)
                                {
                                    ps.PandS_Qty_in_stock = ps.PandS_Qty_in_stock - SIDetailEntity.SIQty;
                                    entities.SaveChanges();
                                }
                            }
                        }
                    }
                    return(obj.ID);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 public Task Add(SalesInvoice model)
 {
     return(Client.ExecutePayload(ByIdUrl, model));
 }
示例#20
0
    private void DoLengthyOperation(int id)
    {
        SalesInvoice invoice = _salesService.GetById(id);

        AsyncManager.OutstandingOperations.Decrement();
    }
        public int SavePaymentFromCustomer(PaymentFromCustomerForm psForm)
        {
            int autoId = 0;

            try
            {
                using (SASEntitiesEDM entities = new SASEntitiesEDM())
                {
                    foreach (var item in psForm.PaymentFromCustomerDetails)
                    {
                        //CashAndBankTransaction obj = entities.CashAndBankTransactions.Where(e => e.SO_CN_PO_DN_No == item.SalesNo).SingleOrDefault();
                        //if(obj!=null)
                        //{
                        //    // obj.Acc_Id = psForm.PaymentToSupplier.AccountId;
                        //    obj.Amount = psForm.PaymentToSupplier.Amount;

                        //    //saving details entity
                        //    obj.SO_CN_PO_DN_No = item.SalesNo;
                        //    obj.SO_CN_PO_DN_Date = item.SalesDate;
                        //    obj.SO_CN_PO_DN_Amt = item.SalesAmount;
                        //    obj.Amt_Due = item.AmountDue;
                        //    obj.Amt_Refunded = item.AmountAdjusted;
                        //    obj.Discount = item.Discount;
                        //    obj.UpdatedBy = 0;
                        //    obj.UpdatedDate = DateTime.Now.Date;
                        //    entities.SaveChanges();
                        //}
                        //else
                        //{
                        CashAndBankTransaction obj = new CashAndBankTransaction();
                        obj.Cus_Sup_Id       = psForm.PaymentFromCustomer.CustomerID;
                        obj.Acc_Id           = psForm.PaymentFromCustomer.AccountId;
                        obj.Amount           = psForm.PaymentFromCustomer.Amount;
                        obj.Cash_Cheque_No   = psForm.PaymentFromCustomer.CashChequeNo;
                        obj.Cash_Cheque_Date = psForm.PaymentFromCustomer.Date;
                        obj.Remarks          = psForm.PaymentFromCustomer.Remarks;
                        obj.Type             = "C";
                        obj.Is_Cheque        = psForm.PaymentFromCustomer.IsCheque;

                        //saving details entity
                        obj.SO_CN_PO_DN_No   = item.SalesNo;
                        obj.SO_CN_PO_DN_Date = item.SalesDate;
                        obj.SO_CN_PO_DN_Amt  = item.SalesAmount;
                        obj.Amt_Due          = item.AmountDue - item.AmountAdjusted;
                        obj.Amt_Refunded     = item.AmountAdjusted;
                        obj.Discount         = item.Discount;

                        obj.UpdatedBy   = 0;
                        obj.UpdatedDate = DateTime.Now.Date;

                        entities.CashAndBankTransactions.Add(obj);
                        entities.SaveChanges();

                        SalesInvoice invoice = entities.SalesInvoices.Where(e => e.SI_No == item.SalesNo).FirstOrDefault();
                        SalesOrder   order   = entities.SalesOrders.Where(e => e.SO_No == item.SalesNo).FirstOrDefault();
                        if (invoice != null)
                        {
                            if (item.AmountAdjusted == item.SalesAmount)
                            {
                                invoice.SI_Status = Convert.ToByte(PI_Status.Paid);
                                entities.SaveChanges();
                            }
                            else
                            {
                                invoice.SI_Status = Convert.ToByte(PI_Status.UnPaid);
                                entities.SaveChanges();
                            }
                        }
                        else if (order != null)
                        {
                            order.SO_Status = Convert.ToByte(PO_Status.Collected);
                            entities.SaveChanges();
                        }



                        //}
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(autoId);
        }
示例#22
0
 public bool ValidDeleteObject(SalesInvoice salesInvoice, ISalesInvoiceDetailService _salesInvoiceDetailService)
 {
     salesInvoice.Errors.Clear();
     VDeleteObject(salesInvoice, _salesInvoiceDetailService);
     return(isValid(salesInvoice));
 }
示例#23
0
 public bool ValidUpdateObject(SalesInvoice salesInvoice, IDeliveryOrderService _deliveryOrderService, ISalesInvoiceDetailService _salesInvoiceDetailService)
 {
     salesInvoice.Errors.Clear();
     VUpdateObject(salesInvoice, _deliveryOrderService, _salesInvoiceDetailService);
     return(isValid(salesInvoice));
 }
示例#24
0
 public void Add(SalesInvoice salesInvoice)
 {
     _set.Add(salesInvoice);
 }
示例#25
0
        /// <summary>
        /// This method is used to add or edit purchase invoice
        /// </summary>
        /// <param name="invoiceData"></param>
        /// <returns></returns>
        public int AddUpdateInvoice(SalesInvoiceForm invoiceData)
        {
            int autoId = 0;
            //Add purchase invoice
            SalesInvoice obj = new SalesInvoice();

            obj.ID     = invoiceData.Invoice.ID;
            obj.Cus_Id = invoiceData.Invoice.CustomerID;

            obj.SI_Date        = invoiceData.Invoice.InvoiceDate;
            obj.SI_GST_Amt     = Convert.ToDecimal(invoiceData.Invoice.TotalTax);
            obj.SI_No          = invoiceData.Invoice.InvoiceNo;
            obj.SI_TandC       = invoiceData.Invoice.TermsAndConditions;
            obj.SI_Tot_aft_Tax = Convert.ToDecimal(invoiceData.Invoice.TotalAfterTax);
            obj.SI_Tot_bef_Tax = Convert.ToDecimal(invoiceData.Invoice.TotalBeforeTax);
            obj.Cus_PO_No      = invoiceData.Invoice.OurSONo;
            obj.SI_Credit_Days = invoiceData.Invoice.CreditDays;
            obj.Salesman       = invoiceData.Invoice.SalesmanID;
            obj.Exc_Inc_GST    = invoiceData.Invoice.ExcIncGST;
            obj.SI_Status      = Convert.ToByte(SI_Status.UnPaid);
            obj.IsDeleted      = false;

            try
            {
                using (SDNSalesDBEntities entities = new SDNSalesDBEntities())
                {
                    if (entities.SalesInvoices.AsNoTracking().FirstOrDefault(x => x.ID == invoiceData.Invoice.ID) == null)
                    {
                        //obj.CreatedBy = invoiceData.SIModel.CreatedBy;
                        obj.CreatedDate = DateTime.Now;
                        entities.SalesInvoices.Add(obj);
                        entities.SaveChanges();
                        autoId = obj.ID;
                    }
                    else
                    {
                        // obj.ModifiedBy = invoiceData.SIModel.ModifiedBy;
                        obj.ModifiedDate          = DateTime.Now;
                        entities.Entry(obj).State = EntityState.Modified;
                        autoId = entities.SaveChanges();
                    }

                    invoiceData.Invoice.ID = autoId;
                    CreateCreditNote(invoiceData);

                    if (autoId > 0)
                    {
                        SalesInvoiceDetail SIDetails;
                        if (invoiceData.InvoiceDetails != null)
                        {
                            foreach (SalesInvoiceDetailEntity SIDetailEntity in invoiceData.InvoiceDetails)
                            {
                                SIDetails             = new SalesInvoiceDetail();
                                SIDetails.SI_ID       = autoId;
                                SIDetails.SI_No       = SIDetailEntity.SINo;
                                SIDetails.PandS_Code  = SIDetailEntity.PandSCode;
                                SIDetails.PandS_Name  = SIDetailEntity.PandSName;
                                SIDetails.SI_Amount   = SIDetailEntity.SIAmount;
                                SIDetails.SI_Discount = SIDetailEntity.SIDiscount;
                                SIDetails.SI_No       = SIDetailEntity.SINo;
                                SIDetails.SI_Price    = Convert.ToDecimal(SIDetailEntity.SIPrice);
                                SIDetails.SI_Qty      = SIDetailEntity.SIQty;
                                SIDetails.GST_Code    = SIDetailEntity.GSTCode;
                                SIDetails.GST_Rate    = SIDetailEntity.GSTRate;


                                if (entities.SalesInvoiceDetails.AsNoTracking().FirstOrDefault(x => x.ID == SIDetailEntity.ID) == null)
                                {
                                    entities.SalesInvoiceDetails.Add(SIDetails);
                                    entities.SaveChanges();
                                }
                                else
                                {
                                    entities.Entry(SIDetails).State = EntityState.Modified;
                                    entities.SaveChanges();
                                }

                                int SIId = Convert.ToInt32(SIDetailEntity.SINo);
                                ProductsAndService ps = entities.ProductsAndServices.SingleOrDefault(e => e.ID == SIId);
                                if (ps != null)
                                {
                                    if (ps.PandS_Qty_in_stock != null || ps.PandS_Qty_in_stock >= 0)
                                    {
                                        ps.PandS_Qty_in_stock = ps.PandS_Qty_in_stock - SIDetailEntity.SIQty;
                                        entities.SaveChanges();
                                    }
                                }
                            }
                        }
                    }
                }
                return(autoId);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#26
0
        public void CreateFinancialRevenueByItem(Session session,
                                                 Guid _BillId,
                                                 Guid _CustomerOrgId,
                                                 Guid _OwnerOrgId,
                                                 Item _Item,
                                                 Unit _Unit,
                                                 int Day,
                                                 int Month,
                                                 int Year,
                                                 string _AssetDim)
        {
            FinancialRevenueByItem_Fact result = new FinancialRevenueByItem_Fact(session);

            try
            {
                SalesInvoice invoice = session.GetObjectByKey <SalesInvoice>(_BillId);
                if (!Util.IsExistXpoObject <InvoiceDim>(session, "RefId", _BillId))
                {
                    InvoiceDim invoiceDim = new InvoiceDim(session);
                    invoiceDim.RefId       = _BillId;
                    invoiceDim.Code        = invoice.Code;
                    invoiceDim.Name        = "";
                    invoiceDim.Description = "";
                    invoiceDim.IssueDate   = invoice.IssuedDate;
                    invoiceDim.RowStatus   = Constant.ROWSTATUS_ACTIVE;
                    invoiceDim.Save();
                }
                if (!Util.IsExistXpoObject <DayDim>(session, "Name", Day.ToString()))
                {
                    DayDim dayDim = new DayDim(session);
                    dayDim.Description = Day.ToString();
                    dayDim.Name        = Day.ToString();
                    dayDim.RowStatus   = Constant.ROWSTATUS_ACTIVE;
                    dayDim.Save();
                }
                if (!Util.IsExistXpoObject <MonthDim>(session, "Name", Month.ToString()))
                {
                    MonthDim MonthDim = new MonthDim(session);
                    MonthDim.Description = Month.ToString();
                    MonthDim.Name        = Month.ToString();
                    MonthDim.RowStatus   = Constant.ROWSTATUS_ACTIVE;
                    MonthDim.Save();
                }
                if (!Util.IsExistXpoObject <YearDim>(session, "Name", Year.ToString()))
                {
                    YearDim YearDim = new YearDim(session);
                    YearDim.Description = Year.ToString();
                    YearDim.Name        = Year.ToString();
                    YearDim.RowStatus   = Constant.ROWSTATUS_ACTIVE;
                    YearDim.Save();
                }
                if (!Util.IsExistXpoObject <FinancialAssetDim>(session, "Name", _AssetDim))
                {
                    FinancialAssetDim assetDim = new FinancialAssetDim(session);
                    assetDim.Name        = _AssetDim;
                    assetDim.Description = _AssetDim;
                    assetDim.RowStatus   = Constant.ROWSTATUS_ACTIVE;
                    assetDim.Save();
                }

                if (!Util.IsExistXpoObject <ItemDim>(session, "RefId", _Item.ItemId))
                {
                    ItemDim itemDim = new ItemDim(session);
                    itemDim.RefId       = _Item.ItemId;
                    itemDim.Code        = _Item.Code;
                    itemDim.Name        = _Item.Name;
                    itemDim.Description = _Item.Description;
                    itemDim.RowStatus   = Constant.ROWSTATUS_ACTIVE;
                    itemDim.Save();
                }
                if (!Util.IsExistXpoObject <UnitDim>(session, "RefId", _Unit.UnitId))
                {
                    UnitDim unitDim = new UnitDim(session);
                    unitDim.RefId       = _Unit.UnitId;
                    unitDim.Code        = _Unit.Code;
                    unitDim.Name        = _Unit.Name;
                    unitDim.Description = _Unit.Description;
                    unitDim.RowStatus   = Constant.ROWSTATUS_ACTIVE;
                    unitDim.Save();
                }
                if (!Util.IsExistXpoObject <CustomerOrgDim>(session, "RefId", _CustomerOrgId))
                {
                    Organization customerOrg = session.GetObjectByKey <Organization>(_CustomerOrgId);
                    if (customerOrg != null)
                    {
                        CustomerOrgDim customerOrgDim = new CustomerOrgDim(session);
                        customerOrgDim.RefId       = _CustomerOrgId;
                        customerOrgDim.Code        = customerOrg.Code;
                        customerOrgDim.Name        = customerOrg.Name;
                        customerOrgDim.Description = customerOrg.Description;
                        customerOrgDim.RowStatus   = Constant.ROWSTATUS_ACTIVE;
                        customerOrgDim.Save();
                    }
                }
                if (!Util.IsExistXpoObject <OwnerOrgDim>(session, "RefId", _OwnerOrgId))
                {
                    Organization ownerOrg = session.GetObjectByKey <Organization>(_OwnerOrgId);
                    if (ownerOrg != null)
                    {
                        OwnerOrgDim ownerOrgDim = new OwnerOrgDim(session);
                        ownerOrgDim.RefId       = _OwnerOrgId;
                        ownerOrgDim.Code        = ownerOrg.Code;
                        ownerOrgDim.Name        = ownerOrg.Name;
                        ownerOrgDim.Description = ownerOrg.Description;
                        ownerOrgDim.RowStatus   = Constant.ROWSTATUS_ACTIVE;
                        ownerOrgDim.Save();
                    }
                }
                Util util = new Util();

                result.InvoiceDimId        = util.GetXpoObjectByFieldName <InvoiceDim, Guid>(session, "RefId", _BillId, DevExpress.Data.Filtering.BinaryOperatorType.Equal);
                result.FinancialAssetDimId = Util.getXpoObjectByName <FinancialAssetDim>(session, _AssetDim);
                result.DayDimId            = Util.getXpoObjectByName <DayDim>(session, Day.ToString());
                result.MonthDimId          = Util.getXpoObjectByName <MonthDim>(session, Month.ToString());
                result.YearDimId           = Util.getXpoObjectByName <YearDim>(session, Year.ToString());
                result.ItemDimId           = util.GetXpoObjectByFieldName <ItemDim, string>(session, "Code", _Item.Code, DevExpress.Data.Filtering.BinaryOperatorType.Equal);
                result.UnitDimId           = util.GetXpoObjectByFieldName <UnitDim, string>(session, "Code", _Unit.Code, DevExpress.Data.Filtering.BinaryOperatorType.Equal);
                result.CustomerOrgDimId    = util.GetXpoObjectByFieldName <CustomerOrgDim, Guid>(session, "RefId", _CustomerOrgId, DevExpress.Data.Filtering.BinaryOperatorType.Equal);
                result.OwnerOrgDimId       = util.GetXpoObjectByFieldName <OwnerOrgDim, Guid>(session, "RefId", _OwnerOrgId, DevExpress.Data.Filtering.BinaryOperatorType.Equal);
                result.Save();
            }
            catch (Exception)
            {
            }
        }
示例#27
0
 public void Delete(SalesInvoice salesInvoice)
 {
     throw new NotImplementedException();
 }
示例#28
0
        public bool isValid(SalesInvoice obj)
        {
            bool isValid = !obj.Errors.Any();

            return(isValid);
        }
        public int ConvertToSalesInvoice(SalesQuotationForm quotationData)
        {
            int autoId = 0;
            //Add purchase quotation
            SalesInvoice obj = new SalesInvoice();

            // obj.ID = quotationData.Quotation.ID;
            obj.Cus_Id         = quotationData.Quotation.CustomerID;
            obj.SI_Date        = quotationData.Quotation.QuotationDate;
            obj.Salesman       = quotationData.Quotation.SalesmanID;
            obj.SI_GST_Amt     = Convert.ToDecimal(quotationData.Quotation.TotalTax);
            obj.SI_No          = "SI-" + (GetLastInvoiceNo() + 1);
            obj.SI_TandC       = quotationData.Quotation.TermsAndConditions;
            obj.SI_Tot_aft_Tax = Convert.ToDecimal(quotationData.Quotation.TotalAfterTax);
            obj.SI_Tot_bef_Tax = Convert.ToDecimal(quotationData.Quotation.TotalBeforeTax);
            obj.SI_Status      = Convert.ToByte(SI_Status.UnPaid);
            obj.Exc_Inc_GST    = quotationData.Quotation.ExcIncGST;
            obj.IsDeleted      = false;

            try
            {
                using (SASEntitiesEDM entities = new SASEntitiesEDM())
                {
                    if (entities.SalesInvoices.AsNoTracking().FirstOrDefault(x => x.ID == quotationData.Quotation.ID) == null)
                    {
                        //obj.CreatedBy = quotationData.SQModel.CreatedBy;
                        obj.CreatedDate = DateTime.Now;
                        entities.SalesInvoices.Add(obj);
                        entities.SaveChanges();
                        autoId = obj.ID;
                    }
                    else
                    {
                        // obj.ModifiedBy = quotationData.SQModel.ModifiedBy;
                        obj.ModifiedDate          = DateTime.Now;
                        entities.Entry(obj).State = EntityState.Modified;
                        autoId = entities.SaveChanges();
                    }
                    if (autoId > 0)
                    {
                        SalesInvoiceDetail SQDetails;
                        if (quotationData.QuotationDetails != null)
                        {
                            foreach (SalesQuotationDetailEntity SQDetailEntity in quotationData.QuotationDetails)
                            {
                                SQDetails             = new SalesInvoiceDetail();
                                SQDetails.SI_ID       = autoId;
                                SQDetails.SI_No       = SQDetailEntity.SQNo;
                                SQDetails.PandS_Code  = SQDetailEntity.PandSCode;
                                SQDetails.PandS_Name  = SQDetailEntity.PandSName;
                                SQDetails.SI_Amount   = SQDetailEntity.SQAmount;
                                SQDetails.SI_Discount = SQDetailEntity.SQDiscount;
                                SQDetails.SI_No       = SQDetailEntity.SQNo;
                                SQDetails.SI_Price    = Convert.ToDecimal(SQDetailEntity.SQPrice);
                                SQDetails.SI_Qty      = SQDetailEntity.SQQty;
                                SQDetails.GST_Code    = SQDetailEntity.GSTCode;
                                SQDetails.GST_Rate    = SQDetailEntity.GSTRate;

                                if (entities.SalesInvoiceDetails.AsNoTracking().FirstOrDefault(x => x.ID == SQDetailEntity.ID) == null)
                                {
                                    entities.SalesInvoiceDetails.Add(SQDetails);
                                    entities.SaveChanges();
                                }
                                else
                                {
                                    entities.Entry(SQDetails).State = EntityState.Modified;
                                    entities.SaveChanges();
                                }
                            }
                        }

                        SalesQuotation objQ = entities.SalesQuotations.Where(e => e.SQ_No == quotationData.Quotation.QuotationNo
                                                                             ).SingleOrDefault();
                        if (objQ != null)
                        {
                            objQ.SQ_Conv_to_SI = true;
                            objQ.ModifiedDate  = DateTime.Now;
                            objQ.Conv_to_No    = obj.SI_No;
                            entities.SaveChanges();
                        }
                    }
                }
                return(autoId);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            try
            { int result;
              if (!int.TryParse(Quantity.Text, out result))
              {
                  MessageBox.Show("This Quantity is not Valid");
              }
              else if (CategoryCombo.SelectedIndex != -1 && ItemCombo.SelectedIndex != -1 && CustomerCombo.SelectedIndex != -1 && KindOfPay.SelectedIndex != -1 && KindOfinvoice.SelectedIndex != -1 && SalesManCombo.SelectedIndex != -1 && result > 0)
              {
                  int          Cus_Id    = int.Parse(CustomerCombo.SelectedValue.ToString());
                  int          Saller_Id = int.Parse(SalesManCombo.SelectedValue.ToString());
                  var          custommer = context.Customers.Where(custome => custome.ID == Cus_Id).FirstOrDefault();
                  var          Seller    = context.salesmans.Where(saler => saler.ID == Saller_Id).FirstOrDefault();
                  int          Item_Id   = int.Parse(ItemCombo.SelectedValue.ToString());
                  var          Item      = context.Items.Where(it => it.ID == Item_Id).FirstOrDefault();
                  ListViewSell list      = ReturnsValues();
                  if (CreateObject == false)
                  {
                      SellInv = new SalesInvoice()
                      {
                          TotalPrice          = list.TotalPrice,
                          Date                = DateTime.Now,
                          KindOfInvoice       = KeyByValue(invoicedata.KindOfInvoice, list.KindOfInvoice.ToString()),
                          TypeOfPay           = KeyByValue(invoicedata.KindOfPay, list.KindOfPay.ToString()),
                          Customer            = custommer,
                          salesman            = Seller,
                          ItemInSalesInvoices = new List <ItemInSalesInvoice>()
                      };
                      CreateObject = true;
                  }
                  ItemInSalesInvoice salesitem = new ItemInSalesInvoice()
                  {
                      Item         = Item,
                      SalesInvoice = SellInv,
                      Quantity     = list.Quantity,
                  };

                  SellInv.ItemInSalesInvoices.Add(salesitem);
                  Item.ItemInSalesInvoices.Add(salesitem);
                  custommer.SalesInvoices.Add(SellInv);
                  Seller.SalesInvoices.Add(SellInv);
                  context.SaveChanges();
                  NoOfInvoice.Text = (context.SalesInvoices.Where(sal => sal.ID == SellInv.ID).Select(re => re.ID).First()).ToString();
                  bool KindInvoice = KeyByValue(invoicedata.KindOfInvoice, list.KindOfInvoice.ToString());
                  bool KindPay     = KeyByValue(invoicedata.KindOfPay, list.KindOfPay.ToString());
                  salesMan.Text = SalesManCombo.Text;
                  if (KindInvoice == true && KindPay == true)
                  {
                      TotalValues += list.TotalPrice;
                  }
                  Total.Text = TotalValues.ToString();
                  list.ID    = context.SalesInvoices.Where(inv => inv.ID == SellInv.ID).Select(se => se.ID).FirstOrDefault();
                  ListView.Items.Add(list);
                  Edit.IsEnabled          = true;
                  Delete.IsEnabled        = true;
                  SalesManCombo.IsEnabled = false;
                  CustomerCombo.IsEnabled = false;
                  KindOfinvoice.IsEnabled = false;
                  KindOfPay.IsEnabled     = false;
                  Quantity.Text           = "";
              }
              else
              {
                  MessageBox.Show("add All Data And Number Should Be Positive");
              } }
            catch
            {
                MessageBox.Show("Enter Valid Data");
            }
        }
        public int UpdateAdjustCreditNote(AdjustCreditNoteForm psForm)
        {
            try
            {
                using (SDNSalesDBEntities entities = new SDNSalesDBEntities())
                {
                    foreach (var item in psForm.AdjustCreditNoteDetails)
                    {
                        if (item.CheckAmountAdjusted == true)
                        {
                            CashAndBankTransaction obj = entities.CashAndBankTransactions.Where(e => e.SO_CN_PO_DN_No == item.SalesNo).SingleOrDefault();
                            if (obj != null)
                            {
                                obj.Acc_Id = psForm.AdjustCreditNote.AccountId;
                                obj.Amount = psForm.AdjustCreditNote.Amount;
                                //obj.Cash_Cheque_No = psForm.AdjustCreditNote.CashChequeNo;
                                obj.Cash_Cheque_Date = psForm.AdjustCreditNote.Date;
                                obj.Remarks          = psForm.AdjustCreditNote.Remarks;
                                obj.Is_Cheque        = psForm.AdjustCreditNote.IsCheque;
                                //saving details entity
                                obj.SO_CN_PO_DN_No   = item.SalesNo;
                                obj.SO_CN_PO_DN_Date = item.SalesDate;
                                obj.SO_CN_PO_DN_Amt  = item.SalesAmount;
                                obj.Amt_Due          = item.AmountDue;
                                obj.Amt_Refunded     = item.AmountAdjusted;
                                obj.Discount         = item.Discount;
                                obj.DN_CN_No         = psForm.AdjustCreditNote.CreditNoteNo;

                                obj.UpdatedBy   = 0;
                                obj.UpdatedDate = DateTime.Now.Date;
                                entities.SaveChanges();

                                if (item.AmountDue == 0 && item.AmountAdjusted == item.SalesAmount)
                                {
                                    SalesInvoice invoice = entities.SalesInvoices.Where(e => e.SI_No == item.SalesNo).SingleOrDefault();
                                    //SalesOrder order = entities.SalesOrders.Where(e => e.PO_No == item.SalesNo).SingleOrDefault();
                                    if (invoice != null)
                                    {
                                        invoice.SI_Status = Convert.ToByte(SI_Status.Paid);
                                        entities.SaveChanges();
                                    }
                                    //else if (order != null)
                                    //{
                                    //}
                                    CreditNote debit = entities.CreditNotes.Where(e => e.CN_No == psForm.AdjustCreditNote.CreditNoteNo).SingleOrDefault();
                                    if (debit != null)
                                    {
                                        debit.CN_Status = Convert.ToByte(CN_Status.Adjusted);
                                        entities.SaveChanges();
                                    }
                                }
                            }
                            else
                            {
                                CashAndBankTransaction cashbankobj = new CashAndBankTransaction()
                                {
                                    Acc_Id           = psForm.AdjustCreditNote.AccountId,
                                    Amount           = psForm.AdjustCreditNote.Amount,
                                    Cash_Cheque_Date = psForm.AdjustCreditNote.Date,
                                    Remarks          = psForm.AdjustCreditNote.Remarks,
                                    Is_Cheque        = psForm.AdjustCreditNote.IsCheque,
                                    SO_CN_PO_DN_No   = item.SalesNo,
                                    SO_CN_PO_DN_Date = item.SalesDate,
                                    SO_CN_PO_DN_Amt  = item.SalesAmount,
                                    Amt_Due          = item.AmountDue,
                                    Amt_Refunded     = item.AmountAdjusted,
                                    Discount         = item.Discount,
                                    UpdatedBy        = 0,
                                    UpdatedDate      = DateTime.Now.Date,
                                    Cus_Sup_Id       = psForm.AdjustCreditNote.CustomerID,
                                    DN_CN_No         = psForm.AdjustCreditNote.CreditNoteNo,
                                    Type             = "S"
                                };
                                entities.CashAndBankTransactions.Add(cashbankobj);
                                entities.SaveChanges();
                                if (item.AmountDue == 0 && item.AmountAdjusted == item.SalesAmount)
                                {
                                    SalesInvoice invoice = entities.SalesInvoices.Where(e => e.SI_No == item.SalesNo).SingleOrDefault();
                                    //SalesOrder order = entities.SalesOrders.Where(e => e.PO_No == item.SalesNo).SingleOrDefault();
                                    if (invoice != null)
                                    {
                                        invoice.SI_Status = Convert.ToByte(SI_Status.Paid);
                                        entities.SaveChanges();
                                    }
                                    //else if (order != null)
                                    //{
                                    //}
                                }
                                CreditNote debit = entities.CreditNotes.Where(e => e.CN_No == psForm.AdjustCreditNote.CreditNoteNo).SingleOrDefault();
                                if (debit != null)
                                {
                                    debit.CN_Status = Convert.ToByte(CN_Status.Adjusted);
                                    entities.SaveChanges();
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(psForm.AdjustCreditNote.ID);
        }