private void MarcarComoImpresa(DataRow dtr, FiscalPrinter.RespuestaImpresion resultado) { DataRow dtrImp = TablaImpresora.AsEnumerable().Where(s => !s.IsNull("account_id") && Convert.ToInt32(s["account_id"]) == Convert.ToInt32(dtr["id"])).FirstOrDefault(); OdooRecord data = null; bool bolReimpresion = true; data = ImpresoraModel.CreateNew(); if (dtrImp == null) { bolReimpresion = false; } data.SetValue("account_id", dtr["id"]); data.SetValue("numero_comprobante", resultado.NumComprobanteFiscal); data.SetValue("reimpresion", bolReimpresion); data.SetValue("serial_equipo_fiscal", resultado.Serie); data.SetValue("print_date", resultado.Fecha.ToString("yyyy-MM-dd HH:mm:ss")); data.SetValue("print_user", Global.User); data.Save(); dtrImp = TablaImpresora.NewRow(); dtrImp["id"] = data.Id; dtrImp["account_id"] = dtr["id"]; dtrImp["numero_comprobante"] = resultado.NumComprobanteFiscal; TablaImpresora.Rows.Add(dtrImp); TablaImpresora.AcceptChanges(); }
private void Factura_Load(object sender, EventArgs e) { string[] str = Properties.Resources.Campos_Factura.Replace("\r", "").Split('\n'); TablaGrilla = new DataTable(); TablaGrilla.Columns.Add(new DataColumn() { ColumnName = "Marca", DataType = typeof(bool) }); foreach (string valor in str) { string strValor = valor.Split('|')[0]; FacturaModel.AddField(strValor); TablaGrilla.Columns.Add(new DataColumn() { ColumnName = strValor }); } TablaGrilla.Columns.Add(new DataColumn() { ColumnName = "RUC", DataType = typeof(string) }); TablaGrilla.Columns.Add(new DataColumn() { ColumnName = "data", DataType = typeof(OdooRecord) }); TablaGrilla.Columns.Add(new DataColumn() { ColumnName = "tipo_doc", DataType = typeof(string) }); str = Properties.Resources.Campos_Linea_Impresora.Replace("\r", "").Split('\n'); TablaImpresora = new DataTable(); foreach (string valor in str) { string strCampo = valor.Split('|')[0]; ImpresoraModel.AddField(strCampo); TablaImpresora.Columns.Add(new DataColumn() { ColumnName = strCampo }); } TablaImpresora.Columns.Add(new DataColumn() { ColumnName = "data", DataType = typeof(OdooRecord) }); str = Properties.Resources.Campos_Detalles.Replace("\r", "").Split('\n'); TablaDetalles = new DataTable(); foreach (string valor in str) { string strCampo = valor.Split('|')[0]; DetalleModel.AddField(strCampo); TablaDetalles.Columns.Add(new DataColumn() { ColumnName = strCampo }); } str = Properties.Resources.Campos_Impuestos.Replace("\r", "").Split('\n'); TablaImpuestos = new DataTable(); foreach (string valor in str) { string strCampo = valor.Split('|')[0]; ImpuestosModel.AddField(strCampo); TablaImpuestos.Columns.Add(new DataColumn() { ColumnName = strCampo }); } spcPrincipal.Panel2Collapsed = true; this.Size = new Size(676, this.Size.Height); tsbBajarFacturas_Click(null, null); }
private void InicializarTablas() { Cursor = Cursors.WaitCursor; TablaGrilla.Clear(); TablaDetalles.Clear(); TablaImpresora.Clear(); TablaImpuestos.Clear(); #region Facturas object[] filter = new object[] { new object[] { "state", "!=", "proforma" }, new object[] { "state", "!=", "proforma2" }, new object[] { "state", "!=", "cancel" }, new object[] { "state", "!=", "draft" }, new object[] { "type", "like", "out" }, new object[] { "date_invoice", ">=", dtpFiltroFecha.Value.ToString("yyyy-MM-dd HH:mm:ss") }, new object[] { "date_invoice", "<", dtpFechaHasta.Value.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss") } }; //Inicializar Tablas /*****************************************/ string[] str = Properties.Resources.Campos_Factura.Replace("\r", "").Split('\n'); List <OdooRecord> records = FacturaModel.Search(filter); List <List <object> > lista = new List <List <object> >(); foreach (OdooRecord record in records) { int intIdPartner = 0; List <object> listaInterna = new List <object>(); listaInterna.Add(false); foreach (string strDato in str) { string[] strValores = strDato.Split('|'); string strValor = strValores[0]; object objDato = record.GetValue(strValor); if (objDato is object[]) { object[] objValArr = objDato as object[]; if (objValArr.Length == 0) { listaInterna.Add(DBNull.Value); } else { int intIndex = Convert.ToInt32(strValores[1]); listaInterna.Add(objValArr[intIndex]); if (strValor == "partner_id") { intIdPartner = Convert.ToInt32(objValArr[0]); } } } else { if (strDato == "date_invoice") { DateTime dt = DateTime.MinValue; DateTime.TryParse(objDato.ToString(), out dt); objDato = dt.ToString("dd/MM/yyyy"); } else if (strDato == "amount_total") { decimal dec = decimal.MinValue; decimal.TryParse(objDato.ToString(), out dec); objDato = dec.ToString("$#,##0.00"); } listaInterna.Add(objDato); } } listaInterna.Add(TomarRUCPartner(intIdPartner)); listaInterna.Add(record); lista.Add(listaInterna); } //dtgPrincipal.Columns.Add(new DataGridViewCheckBoxColumn() { HeaderText = "Marca", DataPropertyName = "Marca", Width = 50 }); lista.ForEach(s => TablaGrilla.Rows.Add(s.ToArray())); TablaGrilla.AsEnumerable().ToList().ForEach(s => s["tipo_doc"] = s["refund_type"].ToString() == "credit" || s["type"].ToString().Contains("refund") ? "Nota de Crédito" : s["refund_type"].ToString() == "debit" ? "Nota de Débito" : "Factura"); dtgPrincipal.DataSource = new DataView(TablaGrilla, "printer_list_ids is null", "Id", DataViewRowState.CurrentRows); ColFecha.DefaultCellStyle.Format = "dd/MM/yyyy"; dtgTodas.DataSource = new DataView(TablaGrilla, "printer_list_ids is not null", "Id Desc", DataViewRowState.CurrentRows); tsbImprimir.Enabled = dtgPrincipal.Rows.Count > 0; #endregion #region Referencias de la factura foreach (DataRow dtr in TablaGrilla.Rows) { str = Properties.Resources.Campos_Linea_Impresora.Replace("\r", "").Split('\n'); filter = new object[] { new object[] { "account_id.id", "=", dtr["Id"].ToString() }, }; records = ImpresoraModel.Search(filter); List <List <object> > listaImpresora = new List <List <object> >(); List <List <object> > listaDetalle = new List <List <object> >(); foreach (OdooRecord record in records) { List <object> listaInterna = new List <object>(); foreach (string strDato in str) { string[] strValores = strDato.Split('|'); string strValor = strValores[0]; object objDato = record.GetValue(strValor); if (objDato is object[]) { object[] objValArr = objDato as object[]; if (objValArr.Length == 0) { listaInterna.Add(DBNull.Value); } else { int intIndex = Convert.ToInt32(strValores[1]); listaInterna.Add(objValArr[intIndex]); } } else { listaInterna.Add(objDato); } } listaInterna.Add(record); listaImpresora.Add(listaInterna); } listaImpresora.ForEach(s => TablaImpresora.Rows.Add(s.ToArray())); str = Properties.Resources.Campos_Detalles.Replace("\r", "").Split('\n'); filter = new object[] { new object[] { "invoice_id.id", "=", dtr["Id"].ToString() }, }; records = DetalleModel.Search(filter); foreach (OdooRecord record in records) { List <object> listaInterna = new List <object>(); foreach (string strDato in str) { string[] strValores = strDato.Split('|'); string strValor = strValores[0]; object objDato = record.GetValue(strValor); if (objDato is object[] || objDato is int[]) { dynamic objValArr = objDato; if (objValArr.Length == 0) { listaInterna.Add(DBNull.Value); } else { if (strValores.Length > 1) { int intIndex = Convert.ToInt32(strValores[1]); listaInterna.Add(objValArr[intIndex]); } else { listaInterna.Add(objValArr[0]); } } } else { listaInterna.Add(objDato); } } listaDetalle.Add(listaInterna); } listaDetalle.ForEach(s => TablaDetalles.Rows.Add(s.ToArray())); } #endregion #region Impuestos str = Properties.Resources.Campos_Impuestos.Replace("\r", "").Split('\n'); foreach (DataRow dtrDet in TablaDetalles.Rows) { if (string.IsNullOrEmpty(dtrDet["invoice_line_tax_ids"].ToString())) { continue; } int intIdTax = Convert.ToInt32(dtrDet["invoice_line_tax_ids"]); if (TablaImpuestos.AsEnumerable().ToList().Exists(s => Convert.ToInt32(s["id"]) == intIdTax)) { continue; } filter = new object[] { new object[] { "id", "=", intIdTax.ToString() } }; records = ImpuestosModel.Search(filter); lista = new List <List <object> >(); foreach (OdooRecord record in records) { List <object> listaInterna = new List <object>(); foreach (string strDato in str) { string[] strValores = strDato.Split('|'); string strValor = strValores[0]; object objDato = record.GetValue(strValor); if (objDato is object[]) { object[] objValArr = objDato as object[]; if (objValArr.Length == 0) { listaInterna.Add(DBNull.Value); } else { int intIndex = Convert.ToInt32(strValores[1]); listaInterna.Add(objValArr[intIndex]); } } else { listaInterna.Add(objDato); } } lista.Add(listaInterna); } //dtgPrincipal.Columns.Add(new DataGridViewCheckBoxColumn() { HeaderText = "Marca", DataPropertyName = "Marca", Width = 50 }); lista.ForEach(s => TablaImpuestos.Rows.Add(s.ToArray())); } //Inicializar Tablas /*****************************************/ #endregion Cursor = Cursors.Default; }