private void UpdateSalesInvoiceMaster(SalSalesInvoiceMaster Master, List <vmLSalesInvoiceDetail> UpdatetList)
 {
     GFactory_EF_SalSalesInvoiceDetails = new SalSalesInvoiceDetail_EF();
     foreach (vmLSalesInvoiceDetail aitem in UpdatetList)
     {
         SalSalesInvoiceDetail _aitem = GFactory_EF_SalSalesInvoiceDetails.FindBy(x => x.SIDetailID == aitem.SIDetailID).FirstOrDefault();
         _aitem.SIID       = Master.SIID;
         _aitem.ItemID     = aitem.ItemID;
         _aitem.BatchID    = aitem.BatchID;
         _aitem.LotID      = aitem.LotID;
         _aitem.GradeID    = aitem.GradeID;
         _aitem.SupplierID = aitem.SupplierID;
         _aitem.UnitID     = aitem.UnitID;
         _aitem.UnitPrice  = aitem.UnitPrice;
         _aitem.Qty        = aitem.Qty;
         _aitem.Amount     = aitem.Amount;
         _aitem.Remarks    = aitem.Remarks;
         _aitem.CompanyID  = Master.CompanyID;
         _aitem.UpdateBy   = Master.CreateBy;
         _aitem.UpdateOn   = DateTime.Today;
         _aitem.UpdatePc   = HostService.GetIP();
         GFactory_EF_SalSalesInvoiceDetails.Update(_aitem);
         GFactory_EF_SalSalesInvoiceDetails.Save();
     }
 }
        private void SaveSalesInvoiceDetails(SalSalesInvoiceMaster Master, List <vmLSalesInvoiceDetail> SalesInvoiceDetails)
        {
            GFactory_EF_SalSalesInvoiceDetails = new SalSalesInvoiceDetail_EF();
            long SIDetailID = Convert.ToInt16(GFactory_EF_SalSalesInvoiceDetails.getMaxID("SalSalesInvoiceDetail"));

            foreach (vmLSalesInvoiceDetail aitem in SalesInvoiceDetails)
            {
                SalSalesInvoiceDetail _aitem = new SalSalesInvoiceDetail();
                _aitem.SIDetailID = SIDetailID;
                _aitem.SIID       = Master.SIID;
                _aitem.ItemID     = aitem.ItemID;
                _aitem.BatchID    = aitem.BatchID;
                _aitem.LotID      = aitem.LotID;
                _aitem.GradeID    = aitem.GradeID;
                _aitem.SupplierID = aitem.SupplierID;
                _aitem.UnitID     = aitem.UnitID;
                _aitem.UnitPrice  = aitem.UnitPrice;
                _aitem.Qty        = aitem.Qty;
                _aitem.Amount     = aitem.Amount;
                _aitem.Remarks    = aitem.Remarks;
                _aitem.CompanyID  = Master.CompanyID;
                _aitem.CreateBy   = Master.CreateBy;
                _aitem.CreateOn   = DateTime.Today;
                _aitem.CreatePc   = HostService.GetIP();
                _aitem.IsDeleted  = false;
                GFactory_EF_SalSalesInvoiceDetails.Insert(_aitem);
                GFactory_EF_SalSalesInvoiceDetails.Save();
                SIDetailID++;
            }
            GFactory_EF_SalSalesInvoiceDetails.updateMaxID("SalSalesInvoiceDetail", Convert.ToInt64(SIDetailID));
        }
        private void UpdateSalSalesInvoiceDetail(SalSalesInvoiceMaster Master, List <vmLSalesInvoiceDetail> SalesInvoiceDetails, List <vmLSalesInvoiceDetail> DeleteSalesInvoiceDetails)
        {
            List <vmLSalesInvoiceDetail> InsertList  = new List <vmLSalesInvoiceDetail>();
            List <vmLSalesInvoiceDetail> UpdatetList = new List <vmLSalesInvoiceDetail>();
            List <SalSalesInvoiceDetail> DelteList   = new List <SalSalesInvoiceDetail>();

            try
            {
                if (DeleteSalesInvoiceDetails.Count > 0)
                {
                    vmCmnParameters _cmnParameters = new vmCmnParameters();
                    foreach (vmLSalesInvoiceDetail aitem in DeleteSalesInvoiceDetails)
                    {
                        SalSalesInvoiceDetail _salesInvocieDetails = new SalSalesInvoiceDetail();
                        _salesInvocieDetails.SIDetailID = aitem.SIDetailID;
                        DelteList.Add(_salesInvocieDetails);
                        _cmnParameters.loggeduser = Master.CreateBy ?? 0;
                    }
                    DeleteSalSalesInvoiceDetail(DelteList, _cmnParameters);
                }
                if (SalesInvoiceDetails.Count > 0)
                {
                    InsertList  = SalesInvoiceDetails.Where(x => x.Status == "New").ToList();
                    UpdatetList = SalesInvoiceDetails.Where(x => x.Status == "Update").ToList();
                    SaveSalesInvoiceDetails(Master, InsertList);
                    UpdateSalesInvoiceMaster(Master, UpdatetList);
                }
            }
            catch
            {
            }
        }
        private void DeleteSalSalesInvoiceDetail(List <SalSalesInvoiceDetail> _SalesInvoiceDetails, vmCmnParameters objcmnParam)
        {
            GFactory_EF_SalSalesInvoiceDetails = new SalSalesInvoiceDetail_EF();
            List <SalSalesInvoiceDetail> UpdateList = new List <SalSalesInvoiceDetail>();

            foreach (SalSalesInvoiceDetail aitem in _SalesInvoiceDetails)
            {
                SalSalesInvoiceDetail _salesInvoiceDetail = GFactory_EF_SalSalesInvoiceDetails.FindBy(x => x.SIDetailID == aitem.SIDetailID).FirstOrDefault();
                _salesInvoiceDetail.DeleteOn  = DateTime.Today;
                _salesInvoiceDetail.DeleteBy  = objcmnParam.loggeduser;
                _salesInvoiceDetail.DeletePc  = HostService.GetIP();
                _salesInvoiceDetail.IsDeleted = true;
                UpdateList.Add(_salesInvoiceDetail);
            }
            GFactory_EF_SalSalesInvoiceDetails.UpdateList(UpdateList);
            GFactory_EF_SalSalesInvoiceDetails.Save();
        }