//private void calculate_total(object sender, EventArgs e) //{ // purchase_invoice purchase_invoice = (purchase_invoice)purchase_invoiceDataGrid.SelectedItem; // if (purchase_invoice != null) // { // purchase_invoice.get_Puchase_Total(); // } //} private void purchase_invoice_detailDataGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e) { purchase_invoice_detail purchase_invoice_detail = (purchase_invoice_detail)dgvPurchaseDetail.SelectedItem; //calculate_total(sender, e); calculate_vat(sender, e); }
public void purchase() { string sql = " SELECT " + " COMPRAS.CODCOMPRA, " + //0 " COMPRAS.NUMCOMPRA, " + //1 " COMPRAS.FECHACOMPRA, " + //2 " COMPRAS.TOTALDESCUENTO, " + //3 " COMPRAS.TOTALEXENTA, " + //4 " COMPRAS.TOTALGRAVADA, " + //5 " COMPRAS.TOTALIVA, " + //6 " COMPRAS.MODALIDADPAGO, " + //7 " COMPRAS.FECGRA, " + //8 " COMPRAS.ESTADO, " + //9 " COMPRAS.MOTIVOANULADO, " + //10 " COMPRAS.FECHACOMPRA, " + //11 " COMPRAS.TIMBRADOPROV, " + //12 " COMPRAS.TOTALIVA5, " + //13 " COMPRAS.TOTALIVA10, " + //14 " COMPRAS.METODO, " + //15 " COMPRAS.TOTALGRAVADO5, " + //16 " COMPRAS.TOTALGRAVADO10, " + //17 " COMPRAS.ASENTADO, " + //18 " COMPRAS.TOTALCOMPRA, " + //19 " PROVEEDOR.NOMBRE, " + //20 " PROVEEDOR.RUC_CIN, " + //21 " dbo.SUCURSAL.DESSUCURSAL, " +//28 " COMPRAS.COTIZACION1, " + " dbo.FACTURAPAGAR.FECHAVCTO" + " FROM COMPRAS RIGHT OUTER JOIN " + " PROVEEDOR ON COMPRAS.CODPROVEEDOR = PROVEEDOR.CODPROVEEDOR" + " LEFT OUTER JOIN FACTURAPAGAR ON COMPRAS.CODCOMPRA = FACTURAPAGAR.CODCOMPRA" + " RIGHT OUTER JOIN SUCURSAL ON COMPRAS.CODSUCURSAL = SUCURSAL.CODSUCURSAL"; SqlConnection conn = new SqlConnection(_connString); //Counts Total number of Rows we have to process SqlCommand cmd = new SqlCommand(sql, conn); conn.Open(); cmd.CommandText = "SELECT COUNT(*) FROM COMPRAS"; cmd.CommandType = CommandType.Text; int count = (int)cmd.ExecuteScalar(); conn.Close(); int value = 0; Dispatcher.BeginInvoke((Action)(() => purchaseMaximum.Text = count.ToString())); Dispatcher.BeginInvoke((Action)(() => purchaseValue.Text = value.ToString())); Dispatcher.BeginInvoke((Action)(() => progPurchase.Maximum = count)); Dispatcher.BeginInvoke((Action)(() => progPurchase.Value = value)); cmd = new SqlCommand(sql, conn); conn.Open(); cmd.CommandType = CommandType.Text; DataTable dt_purchase = exeDT(sql); //SqlDataReader reader = cmd.ExecuteReader(); foreach (DataRow purchaserow in dt_purchase.Rows) { using (PurchaseInvoiceDB db = new PurchaseInvoiceDB()) { db.Configuration.AutoDetectChangesEnabled = false; purchase_invoice purchase_invoice = db.New(); purchase_invoice.number = purchaserow["NUMCOMPRA"] is DBNull ? null : purchaserow["NUMCOMPRA"].ToString(); if (!(purchaserow["FECHACOMPRA"] is DBNull)) { purchase_invoice.trans_date = Convert.ToDateTime(purchaserow["FECHACOMPRA"]); } else { continue; } //Supplier if (!(purchaserow["NOMBRE"] is DBNull)) { string _customer = purchaserow["NOMBRE"].ToString(); contact contact = db.contacts.Where(x => x.name == _customer && x.id_company == id_company).FirstOrDefault(); purchase_invoice.id_contact = contact.id_contact; } //Condition (Cash or Credit) if (!(purchaserow["MODALIDADPAGO"] is DBNull) && Convert.ToInt32(purchaserow["MODALIDADPAGO"]) == 0) { app_condition app_condition = db.app_condition.Where(x => x.name == "Contado").FirstOrDefault(); purchase_invoice.id_condition = app_condition.id_condition; //Contract... app_contract_detail app_contract_detail = db.app_contract_detail.Where(x => x.app_contract.id_condition == purchase_invoice.id_condition && x.app_contract.id_company == id_company).FirstOrDefault(); if (app_contract_detail != null) { purchase_invoice.id_contract = app_contract_detail.id_contract; } else { app_contract app_contract = GenerateDefaultContrat(app_condition, 0); db.app_contract.Add(app_contract); purchase_invoice.app_contract = app_contract; purchase_invoice.id_contract = app_contract.id_contract; } } else if (!(purchaserow["MODALIDADPAGO"] is DBNull) && Convert.ToInt32(purchaserow["MODALIDADPAGO"]) == 1) { app_condition app_condition = db.app_condition.Where(x => x.name == "Crédito" && x.id_company == id_company).FirstOrDefault(); purchase_invoice.id_condition = app_condition.id_condition; //Contract... if (!(purchaserow["FECHAVCTO"] is DBNull)) { DateTime _due_date = Convert.ToDateTime(purchaserow["FECHAVCTO"]); int interval = (_due_date - purchase_invoice.trans_date).Days; app_contract_detail app_contract_detail = db.app_contract_detail.Where(x => x.app_contract.id_condition == purchase_invoice.id_condition && x.app_contract.id_company == id_company && x.interval == interval).FirstOrDefault(); if (app_contract_detail != null) { purchase_invoice.id_contract = app_contract_detail.id_contract; } else { app_contract app_contract = GenerateDefaultContrat(app_condition, interval); db.app_contract.Add(app_contract); purchase_invoice.app_contract = app_contract; purchase_invoice.id_contract = app_contract.id_contract; } } } int id_location = 0; //Branch if (!(purchaserow["DESSUCURSAL"] is DBNull)) { //Branch string _branch = purchaserow["DESSUCURSAL"].ToString(); app_branch app_branch = db.app_branch.Where(x => x.name == _branch && x.id_company == id_company).FirstOrDefault(); purchase_invoice.id_branch = app_branch.id_branch; //Location id_location = db.app_location.Where(x => x.id_branch == app_branch.id_branch && x.is_default).FirstOrDefault().id_location; //Terminal purchase_invoice.id_terminal = db.app_terminal.Where(x => x.app_branch.id_branch == app_branch.id_branch).FirstOrDefault().id_terminal; } string _desMoneda = string.Empty; //Sales Invoice Detail string sqlDetail = "SELECT" + " dbo.PRODUCTOS.DESPRODUCTO as ITEM_DESPRODUCTO," //0 + " dbo.COMPRASDETALLE.DESPRODUCTO," //1 + " dbo.COMPRASDETALLE.CANTIDADCOMPRA, " //2 + " dbo.COMPRASDETALLE.COSTOUNITARIO, " //3 + " dbo.COMPRASDETALLE.IVA, " //4 + " dbo.COMPRAS.COTIZACION1, " //5 + " dbo.MONEDA.DESMONEDA " //6 + " FROM dbo.COMPRAS LEFT OUTER JOIN" + " dbo.MONEDA ON dbo.COMPRAS.CODMONEDA = dbo.MONEDA.CODMONEDA LEFT OUTER JOIN" + " dbo.COMPRASDETALLE ON dbo.COMPRAS.CODCOMPRA = dbo.COMPRASDETALLE.CODCOMPRA LEFT OUTER JOIN" + " dbo.PRODUCTOS ON dbo.COMPRASDETALLE.CODPRODUCTO = dbo.PRODUCTOS.CODPRODUCTO" + " WHERE (dbo.COMPRASDETALLE.CODCOMPRA = " + purchaserow["CODCOMPRA"].ToString() + ")"; DataTable dt = exeDT(sqlDetail); foreach (DataRow row in dt.Rows) { //db Related Insertion. purchase_invoice.id_currencyfx = 1; purchase_invoice_detail purchase_invoice_detail = new purchase_invoice_detail(); string _prod_Name = row["ITEM_DESPRODUCTO"].ToString(); if (db.items.Where(x => x.name == _prod_Name && x.id_company == id_company).FirstOrDefault() != null) { //Only if Item Exists item item = db.items.Where(x => x.name == _prod_Name && x.id_company == id_company).FirstOrDefault(); purchase_invoice_detail.id_item = item.id_item; } if (row["DESPRODUCTO"] is DBNull) { //If not Item Description, then just continue out of this loop. continue; } purchase_invoice_detail.item_description = row["DESPRODUCTO"].ToString(); purchase_invoice_detail.quantity = Convert.ToDecimal(row["CANTIDADCOMPRA"]); purchase_invoice_detail.id_location = id_location; string _iva = row["IVA"].ToString(); if (_iva == "10.00") { purchase_invoice_detail.id_vat_group = db.app_vat_group.Where(x => x.name == "10%").FirstOrDefault().id_vat_group; } else if (_iva == "5.00") { purchase_invoice_detail.id_vat_group = db.app_vat_group.Where(x => x.name == "5%").FirstOrDefault().id_vat_group; } else { if (db.app_vat_group.Where(x => x.name == "Excento").FirstOrDefault() != null) { purchase_invoice_detail.id_vat_group = db.app_vat_group.Where(x => x.name == "Excento").FirstOrDefault().id_vat_group; } } decimal cotiz1 = Convert.ToDecimal((row["COTIZACION1"] is DBNull) ? 1 : Convert.ToDecimal(row["COTIZACION1"])); // purchase_invoice_detail.unit_price = (Convert.ToDecimal(row["PRECIOVENTANETO"]) / purchase_invoice_detail.quantity) / cotiz1; if (row["COSTOUNITARIO"] is DBNull) { purchase_invoice_detail.unit_cost = 0; } else { purchase_invoice_detail.unit_cost = Convert.ToDecimal(row["COSTOUNITARIO"]); } //Commit Sales Invoice Detail purchase_invoice.purchase_invoice_detail.Add(purchase_invoice_detail); } if (purchase_invoice.Error == null) { try { purchase_invoice.State = System.Data.Entity.EntityState.Added; purchase_invoice.IsSelected = true; // db.purchase_invoice.Add(purchase_invoice); IEnumerable<DbEntityValidationResult> validationresult = db.GetValidationErrors(); if (validationresult.Count() == 0) { db.SaveChanges(); } } catch (Exception ex) { throw ex; } //Sales Brillo //if (reader.GetInt32(10) == 1) //{ // entity.Brillo.Approve.SalesInvoice salesBrillo = new entity.Brillo.Approve.SalesInvoice(); // salesBrillo.Start(ref db, sales_invoice); // sales_invoice.status = 0; ????? //} //else if (reader.GetInt32(10)) //{ // entity.Brillo.Approve.SalesInvoice salesBrillo = new entity.Brillo.Approve.SalesInvoice(); // salesBrillo.Start(ref db, sales_invoice); // entity.Brillo.Annul.SalesInvoice salesAnullBrillo = new entity.Brillo.Annul.SalesInvoice(); // salesAnullBrillo.Start(ref db, sales_invoice); // sales_invoice.status = 0; ????? //} value += 1; Dispatcher.BeginInvoke((Action)(() => progPurchase.Value = value)); Dispatcher.BeginInvoke((Action)(() =>purchaseValue.Text = value.ToString())); } else { //Add code to include error contacts into purchase_invoice_ErrorList.Add(purchase_invoice); } } } // reader.Close(); cmd.Dispose(); conn.Close(); _customer_Current = _customer_Max; }
public void Fill_ByPurchase(purchase_invoice_detail Detail, db db) { this.VAT_Coeficient = Detail.app_vat_group.app_vat_group_details.Sum(x => x.app_vat.coefficient); this.UnitValue_WithVAT = Detail.SubTotal_Vat; this.Comment = Detail.item_description; entity.DebeHaber.CostCenter CostCenter = new entity.DebeHaber.CostCenter(); //Check if Purchase has Item. If not its an expense. if (Detail.item != null) { // If Item being sold is FixedAsset, get Cost Center will be the GroupName. if (Detail.item.id_item_type == entity.item.item_type.FixedAssets) { CostCenter.Name = db.item_asset.Where(x => x.id_item == Detail.id_item).FirstOrDefault().item_asset_group != null?db.item_asset.Where(x => x.id_item == Detail.id_item).FirstOrDefault().item_asset_group.name : ""; CostCenter.Type = entity.DebeHaber.CostCenterTypes.FixedAsset; //Add CostCenter into Detail. this.CostCenter.Add(CostCenter); } // If Item being sold is a Service, Contract, or Task. Take it as Direct Revenue. else if (Detail.item.id_item_type == entity.item.item_type.Service || Detail.item.id_item_type == entity.item.item_type.Task || Detail.item.id_item_type == entity.item.item_type.ServiceContract) { if (db.items.Where(x => x.id_item == Detail.id_item).FirstOrDefault().item_tag_detail.FirstOrDefault() != null) { CostCenter.Name = db.items.Where(x => x.id_item == Detail.id_item).FirstOrDefault().item_tag_detail.FirstOrDefault().item_tag.name; } else { CostCenter.Name = Detail.item_description; } CostCenter.Type = entity.DebeHaber.CostCenterTypes.Income; //Add CostCenter into Detail. this.CostCenter.Add(CostCenter); } // Finally if all else fails, assume Item being sold is Merchendice. else { if (db.app_cost_center.Where(x => x.is_product).FirstOrDefault() != null) { CostCenter.Name = db.app_cost_center.Where(x => x.is_product).FirstOrDefault().name; CostCenter.Type = entity.DebeHaber.CostCenterTypes.Merchendice; } else { CostCenter.Name = "Mercaderia"; CostCenter.Type = entity.DebeHaber.CostCenterTypes.Merchendice; } //Add CostCenter into Detail. this.CostCenter.Add(CostCenter); } } else { CostCenter.Name = db.app_cost_center.Where(x => x.is_administrative).FirstOrDefault().name; CostCenter.Type = entity.DebeHaber.CostCenterTypes.Expense; //Add CostCenter into Detail. this.CostCenter.Add(CostCenter); } }
/// <summary> /// Save Purchase Order /// </summary> public void PurchaseOrder_Click(object sender) { CollectionViewSource purchase_invoicepurchase_invoice_detailViewSource = FindResource("purchase_invoicepurchase_invoice_detailViewSource") as CollectionViewSource; purchase_invoice purchase_invoice = (purchase_invoice)purchase_invoiceViewSource.View.CurrentItem; foreach (purchase_order purchase_order in pnlPurchaseOrder.selected_purchase_order) { purchase_invoice.contact = purchase_order.contact; purchase_invoice.id_contact = purchase_order.id_contact; purchase_invoice.app_department = purchase_order.app_department; purchase_invoice.id_department = purchase_order.id_department; purchase_invoice.app_condition = purchase_order.app_condition; purchase_invoice.id_condition = purchase_order.id_condition; purchase_invoice.app_contract = purchase_order.app_contract; purchase_invoice.id_contract = purchase_order.id_contract; if (purchase_order.project != null) { purchase_invoice.project = purchase_order.project; purchase_invoice.id_project = purchase_order.id_project; } foreach (purchase_order_detail _purchase_order_detail in purchase_order.purchase_order_detail) { if (purchase_invoice.purchase_invoice_detail.Where(x => x.id_item == _purchase_order_detail.id_item).Count() == 0) { purchase_invoice_detail purchase_invoice_detail = new purchase_invoice_detail(); purchase_invoice.State = EntityState.Modified; purchase_invoice_detail.purchase_invoice = purchase_invoice; purchase_invoice_detail.id_purchase_order_detail = _purchase_order_detail.id_purchase_order_detail; purchase_invoice_detail.id_vat_group = _purchase_order_detail.id_vat_group; purchase_invoice_detail.app_cost_center = _purchase_order_detail.app_cost_center; purchase_invoice_detail.id_cost_center = _purchase_order_detail.id_cost_center; purchase_invoice_detail.item = _purchase_order_detail.item; purchase_invoice_detail.id_item = _purchase_order_detail.id_item; purchase_invoice_detail.item_description = _purchase_order_detail.item_description; purchase_invoice_detail.quantity = _purchase_order_detail.quantity - PurchaseInvoiceDB.purchase_invoice_detail .Where(x => x.id_purchase_order_detail == _purchase_order_detail.id_purchase_order_detail) .GroupBy(x => x.id_purchase_order_detail).Select(x => x.Sum(y => y.quantity)).FirstOrDefault(); purchase_invoice_detail.unit_cost = _purchase_order_detail.unit_cost; foreach (purchase_order_dimension purchase_order_dimension in _purchase_order_detail.purchase_order_dimension) { purchase_invoice_dimension purchase_invoice_dimension = new purchase_invoice_dimension(); purchase_invoice_dimension.id_dimension = purchase_order_dimension.id_dimension; purchase_invoice_dimension.value = purchase_order_dimension.value; purchase_invoice_dimension.id_measurement = purchase_order_dimension.id_measurement; //Add Dimension to Detail purchase_invoice_detail.purchase_invoice_dimension.Add(purchase_invoice_dimension); } //Add Detail to Header purchase_invoice.purchase_invoice_detail.Add(purchase_invoice_detail); } } } PurchaseInvoiceDB.Entry(purchase_invoice).Entity.State = EntityState.Added; purchase_invoicepurchase_invoice_detailViewSource.View.Refresh(); crud_modal.Children.Clear(); crud_modal.Visibility = Visibility.Collapsed; }
private void SelectProduct_Thread(object sender, EventArgs e, purchase_invoice purchase_invoice, item item, contact contact) { purchase_invoice_detail purchase_invoice_detail = new purchase_invoice_detail(); purchase_invoice_detail.purchase_invoice = purchase_invoice; Cognitivo.Purchase.InvoiceSetting InvoiceSetting = new Cognitivo.Purchase.InvoiceSetting(); //ItemLink if (item != null) { purchase_invoice_detail detail_withitem = purchase_invoice.purchase_invoice_detail.Where(a => a.id_item == item.id_item).FirstOrDefault(); if (detail_withitem != null && InvoiceSetting.AllowDuplicateItems) { //Item Exists in Context, so add to sum. purchase_invoice_detail _purchase_invoice_detail = detail_withitem; _purchase_invoice_detail.quantity += 1; //Return because Item exists, and will +1 in Quantity return; } else { //If Item Exists in previous purchase... then get Last Cost. Problem, will get in stored value, in future we will need to add logic to convert into current currency. purchase_invoice_detail _purchase_invoice_detail = PurchaseInvoiceDB.purchase_invoice_detail .Where(x => x.id_item == item.id_item && x.purchase_invoice.id_contact == purchase_invoice.id_contact) .OrderByDescending(y => y.purchase_invoice.trans_date) .FirstOrDefault(); if (_purchase_invoice_detail != null) { purchase_invoice_detail.unit_cost = _purchase_invoice_detail.unit_cost; } //Item DOES NOT Exist in Context purchase_invoice_detail.item = item; purchase_invoice_detail.id_item = item.id_item; purchase_invoice_detail.item_description = item.name; purchase_invoice_detail.quantity = 1; } foreach (item_dimension item_dimension in item.item_dimension) { purchase_invoice_dimension purchase_invoice_dimension = new purchase_invoice_dimension(); purchase_invoice_dimension.id_dimension = item_dimension.id_app_dimension; purchase_invoice_dimension.app_dimension = item_dimension.app_dimension; purchase_invoice_dimension.id_measurement = item_dimension.id_measurement; purchase_invoice_dimension.app_measurement = item_dimension.app_measurement; purchase_invoice_dimension.purchase_invoice_detail = purchase_invoice_detail; purchase_invoice_dimension.value = item_dimension.value; purchase_invoice_detail.purchase_invoice_dimension.Add(purchase_invoice_dimension); } } else { Dispatcher.BeginInvoke((Action)(() => { purchase_invoice_detail.item_description = sbxItem.Text; })); } //Cost Center if (contact != null && contact.app_cost_center != null) { app_cost_center app_cost_center = contact.app_cost_center; if (app_cost_center.id_cost_center > 0) { purchase_invoice_detail.id_cost_center = app_cost_center.id_cost_center; } } else { Dispatcher.BeginInvoke((Action)(() => { //If Contact does not exist, and If product exist, then take defualt Product Cost Center. Else, bring Administrative if (item != null) { int id_cost_center = 0; if (item.item_product != null) { app_cost_center app_cost_center = PurchaseInvoiceDB.app_cost_center.Where(a => a.is_product && a.is_active && a.id_company == CurrentSession.Id_Company).FirstOrDefault(); if (app_cost_center != null) { id_cost_center = Convert.ToInt32(app_cost_center.id_cost_center); } if (id_cost_center > 0) { purchase_invoice_detail.id_cost_center = id_cost_center; } } else if (item.item_asset != null) { app_cost_center app_cost_center = PurchaseInvoiceDB.app_cost_center.Where(a => a.is_fixedasset == true && a.is_active == true && a.id_company == CurrentSession.Id_Company).FirstOrDefault(); if (app_cost_center != null) { id_cost_center = Convert.ToInt32(app_cost_center.id_cost_center); } if (id_cost_center > 0) { purchase_invoice_detail.id_cost_center = id_cost_center; } } } else { int id_cost_center = 0; app_cost_center app_cost_center = PurchaseInvoiceDB.app_cost_center.Where(a => a.is_administrative == true && a.is_active == true && a.id_company == CurrentSession.Id_Company).FirstOrDefault(); if (app_cost_center != null) { id_cost_center = Convert.ToInt32(app_cost_center.id_cost_center); } if (id_cost_center > 0) { purchase_invoice_detail.id_cost_center = id_cost_center; } } })); } //VAT if (item != null) { if (item.id_vat_group > 0) { purchase_invoice_detail.id_vat_group = item.id_vat_group; } } else if (PurchaseInvoiceDB.app_vat_group.Where(x => x.is_active && x.is_default && x.id_company == CurrentSession.Id_Company).Any()) { purchase_invoice_detail.id_vat_group = PurchaseInvoiceDB.app_vat_group.Where(x => x.is_active && x.is_default && x.id_company == CurrentSession.Id_Company).FirstOrDefault().id_vat_group; } Dispatcher.BeginInvoke((Action)(() => { purchase_invoice.purchase_invoice_detail.Add(purchase_invoice_detail); purchase_invoicepurchase_invoice_detailViewSource.View.Refresh(); calculate_vat(null, null); })); }
private void purchase_invoice_detailDataGrid_InitializingNewItem(object sender, InitializingNewItemEventArgs e) { purchase_invoice_detail purchase_invoice_detail = (purchase_invoice_detail)e.NewItem; purchase_invoice purchase_invoice = (purchase_invoice)purchase_invoiceDataGrid.SelectedItem; //p purchase_invoice_detail.id_branch = purchase_invoice.id_branch; }