private Lfx.Types.OperationResult MostrarNormal(string Filtros) { string TextoSql = null; string ColumnaTotal = "total"; // Filtros = "comprob.id_comprob=comprob_detalle.id_comprob AND comprob_detalle.id_articulo=articulos.id_articulo AND " & Filtros switch (m_Agrupar) { case "": TextoSql = "SELECT comprob.*"; break; default: TextoSql = "SELECT comprob.*, DAYOFWEEK(comprob.fecha), DAYOFMONTH(comprob.fecha), MONTH(comprob.fecha), SUM(comprob.total) AS sumtotal"; break; } TextoSql += " FROM comprob WHERE " + Filtros; if (m_Agrupar.Length > 0) { TextoSql += " GROUP BY " + m_Agrupar; } else { TextoSql += " GROUP BY comprob.id_comprob"; } TextoSql += " ORDER BY "; if (m_Agrupar.Length > 0) { TextoSql += "sumtotal DESC, "; ColumnaTotal = "sumtotal"; } TextoSql += "RIGHT(comprob.tipo_fac, 1), comprob.pv, comprob.numero"; System.Data.DataTable Comprobs = this.Connection.Select(TextoSql); decimal Total = 0, SubTotal = 0; //double Diferencia = 0; string UltimoValorAgrupar = "slfadf*af*df*asdf"; ReportSheet = new Lazaro.Pres.Spreadsheet.Sheet("Listado de Comprobantes - Fecha " + m_Fechas.From + " al " + m_Fechas.To); if (m_Agrupar.Length == 0) { ReportSheet.ColumnHeaders.Add(new Lazaro.Pres.Spreadsheet.ColumnHeader("Fecha", 100)); ReportSheet.ColumnHeaders.Add(new Lazaro.Pres.Spreadsheet.ColumnHeader("Tipo", 48)); ReportSheet.ColumnHeaders.Add(new Lazaro.Pres.Spreadsheet.ColumnHeader("Número", 120)); ReportSheet.ColumnHeaders.Add(new Lazaro.Pres.Spreadsheet.ColumnHeader("Cliente", 240)); ReportSheet.ColumnHeaders.Add(new Lazaro.Pres.Spreadsheet.ColumnHeader(Lbl.Sys.Config.Pais.ClavePersonasJuridicas.Nombre, 120)); ReportSheet.ColumnHeaders.Add(new Lazaro.Pres.Spreadsheet.ColumnHeader("Importe", 160, Lfx.Types.StringAlignment.Far)); ReportSheet.ColumnHeaders.Add(new Lazaro.Pres.Spreadsheet.ColumnHeader("Cancelado", 160, Lfx.Types.StringAlignment.Far)); } else { ReportSheet.ColumnHeaders.Add(new Lazaro.Pres.Spreadsheet.ColumnHeader("Item", 480)); ReportSheet.ColumnHeaders.Add(new Lazaro.Pres.Spreadsheet.ColumnHeader("Importe", 160, Lfx.Types.StringAlignment.Far)); ReportSheet.ColumnHeaders.Add(new Lazaro.Pres.Spreadsheet.ColumnHeader("Cancelado", 160, Lfx.Types.StringAlignment.Far)); } string NombreGrupo = null; foreach (System.Data.DataRow Comprob in Comprobs.Rows) { Lazaro.Pres.Spreadsheet.Row Reng = new Lazaro.Pres.Spreadsheet.Row(); if (m_Agrupar.Length > 0 && Comprob[Lazaro.Orm.Data.ColumnValue.GetNameOnly(m_Agrupar)].ToString() != UltimoValorAgrupar) { UltimoValorAgrupar = Comprob[Lazaro.Orm.Data.ColumnValue.GetNameOnly(m_Agrupar)].ToString(); if (SubTotal > 0) { Lazaro.Pres.Spreadsheet.Row SubTotal1 = new Lazaro.Pres.Spreadsheet.Row(); SubTotal1.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(NombreGrupo)); SubTotal1.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(Lbl.Sys.Config.Moneda.Simbolo + " " + Lfx.Types.Formatting.FormatCurrency(SubTotal, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales))); ReportSheet.Rows.Add(SubTotal1); SubTotal = 0; } switch (m_Agrupar) { case "comprob.id_vendedor": case "comprob.id_cliente": if (UltimoValorAgrupar.Length > 0) { NombreGrupo = this.Connection.FieldString("SELECT nombre_visible FROM personas WHERE id_persona=" + UltimoValorAgrupar); } else { NombreGrupo = "(Sin especificar)"; } break; case "comprob.id_formapago": if (UltimoValorAgrupar.Length > 0) { NombreGrupo = this.Connection.FieldString("SELECT nombre FROM formaspago WHERE id_formapago=" + UltimoValorAgrupar); } else { NombreGrupo = "(Sin especificar)"; } break; case "DAYOFWEEK(comprob.fecha)": switch (System.Convert.ToInt32(Comprob[Lazaro.Orm.Data.ColumnValue.GetNameOnly(m_Agrupar)])) { case 1: NombreGrupo = "Domingo"; break; case 2: NombreGrupo = "Lunes"; break; case 3: NombreGrupo = "Martes"; break; case 4: NombreGrupo = "Miércoles"; break; case 5: NombreGrupo = "Jueves"; break; case 6: NombreGrupo = "Viernes"; break; case 7: NombreGrupo = "Sábado"; break; } break; case "DAYOFMONTH(comprob.fecha)": NombreGrupo = System.Convert.ToDateTime(Comprob["fecha"]).ToString("dd-MM-yyyy"); break; case "MONTH(comprob.fecha)": NombreGrupo = System.Convert.ToDateTime(Comprob["fecha"]).ToString("MMMM"); break; default: NombreGrupo = UltimoValorAgrupar; break; } } Reng.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(Lfx.Types.Formatting.FormatDate(Comprob["fecha"]))); Reng.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(System.Convert.ToString(Comprob["tipo_fac"]).PadRight(3).Substring(0, 3))); Reng.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(System.Convert.ToInt32(Comprob["pv"]).ToString("0000") + "-" + System.Convert.ToInt32(Comprob["numero"]).ToString("00000000"))); if (System.Convert.ToInt32(Comprob["anulada"]) != 0) { Reng.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell("ANULADA")); Reng.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell((double)0)); // No suma al total } else { Lfx.Data.Row Cliente = this.Connection.Row("personas", "id_persona", System.Convert.ToInt32(Comprob["id_cliente"])); Reng.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(Cliente["nombre_visible"].ToString())); Reng.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(Cliente["cuit"].ToString())); switch (System.Convert.ToString(Comprob["tipo_fac"])) { case "NCA": case "NCB": case "NCC": case "NCE": case "NCM": Reng.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(-System.Convert.ToDouble(Comprob[ColumnaTotal]))); Reng.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(System.Convert.ToDouble(Comprob["cancelado"]))); Total -= System.Convert.ToDecimal(Comprob[ColumnaTotal]); SubTotal -= System.Convert.ToDecimal(Comprob[ColumnaTotal]); break; default: Reng.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(System.Convert.ToDouble(Comprob[ColumnaTotal]))); Reng.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(System.Convert.ToDouble(Comprob["cancelado"]))); Total += System.Convert.ToDecimal(Comprob[ColumnaTotal]); SubTotal += System.Convert.ToDecimal(Comprob[ColumnaTotal]); break; } } if (m_Agrupar.Length == 0) { ReportSheet.Rows.Add(Reng); } } if (m_Agrupar.Length > 0 && SubTotal > 0) { Lazaro.Pres.Spreadsheet.Row SubTotal2 = new Lazaro.Pres.Spreadsheet.Row(); SubTotal2.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(NombreGrupo)); SubTotal2.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(Lbl.Sys.Config.Moneda.Simbolo + " " + Lfx.Types.Formatting.FormatCurrency(SubTotal, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales))); ReportSheet.Rows.Add(SubTotal2); SubTotal = 0; } Lazaro.Pres.Spreadsheet.Row Total1 = new Lazaro.Pres.Spreadsheet.Row(); Total1.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell("")); Total1.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell("")); Total1.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell("")); Total1.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell("Total")); Total1.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell("")); Total1.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(Lbl.Sys.Config.Moneda.Simbolo + " " + Lfx.Types.Formatting.FormatCurrency(Total, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales))); ReportSheet.Rows.Add(Total1); ReportListView.FromSheet(ReportSheet); this.Report = new Lazaro.Pres.Spreadsheet.Workbook(); this.Report.Sheets.Add(ReportSheet); return(new Lfx.Types.SuccessOperationResult()); }
private Lfx.Types.OperationResult MostrarPorMarcaOProveedor(string Filtros) { string TextoSql = null; string FiltrosCompletos = null; FiltrosCompletos = "comprob.id_comprob=comprob_detalle.id_comprob AND comprob_detalle.id_articulo=articulos.id_articulo AND " + Filtros; TextoSql = "SELECT SUM(comprob_detalle.costo*cantidad) AS totalcosto, COUNT(comprob.id_comprob) AS cantfact, SUM(comprob_detalle.importe*(1-comprob.descuento/100)*(1+comprob.interes/100)) AS total, SUM(comprob_detalle.cantidad) AS cantart, articulos.id_marca, articulos.id_proveedor, articulos.id_articulo, articulos.id_categoria, DAYOFWEEK(comprob.fecha), DAYOFMONTH(comprob.fecha), MONTH(comprob.fecha)"; TextoSql += " FROM comprob, comprob_detalle, articulos WHERE " + FiltrosCompletos; TextoSql += " GROUP BY " + m_Agrupar; TextoSql += " ORDER BY total DESC"; System.Data.DataTable Comprobs = this.Connection.Select(TextoSql); ReportSheet = new Lazaro.Pres.Spreadsheet.Sheet("Listado de Comprobantes - Fecha " + m_Fechas.From + " al " + m_Fechas.To); ReportSheet.ColumnHeaders.Add(new Lazaro.Pres.Spreadsheet.ColumnHeader("Detalle", 320)); ReportSheet.ColumnHeaders.Add(new Lazaro.Pres.Spreadsheet.ColumnHeader("Artículos", 80, Lfx.Types.StringAlignment.Far)); ReportSheet.ColumnHeaders.Add(new Lazaro.Pres.Spreadsheet.ColumnHeader("Facturas", 80, Lfx.Types.StringAlignment.Far)); ReportSheet.ColumnHeaders.Add(new Lazaro.Pres.Spreadsheet.ColumnHeader("Costo", 120, Lfx.Types.StringAlignment.Far)); ReportSheet.ColumnHeaders.Add(new Lazaro.Pres.Spreadsheet.ColumnHeader("Importe", 120, Lfx.Types.StringAlignment.Far)); ReportSheet.ColumnHeaders.Add(new Lazaro.Pres.Spreadsheet.ColumnHeader("Pendiente", 120, Lfx.Types.StringAlignment.Far)); ReportSheet.ColumnHeaders.Add(new Lazaro.Pres.Spreadsheet.ColumnHeader("Diferencia", 120, Lfx.Types.StringAlignment.Far)); decimal Total = 0, TotalCosto = 0; decimal TotalNC = 0, TotalNCCosto = 0; decimal Diferencia = 0; foreach (System.Data.DataRow Comrob in Comprobs.Rows) { Lazaro.Pres.Spreadsheet.Row Reng = new Lazaro.Pres.Spreadsheet.Row(); FiltrosCompletos = "comprob.tipo_fac IN('NCA', 'NCB', 'NCC', 'NCE', 'NCM') AND comprob.id_comprob=comprob_detalle.id_comprob AND comprob_detalle.id_articulo=articulos.id_articulo AND " + Filtros; switch (m_Agrupar) { case "articulos.id_marca": FiltrosCompletos += " AND " + m_Agrupar + "=" + Lfx.Data.Connection.ConvertDBNullToZero(Comrob["id_marca"]); break; case "articulos.id_proveedor": FiltrosCompletos += " AND " + m_Agrupar + "=" + Lfx.Data.Connection.ConvertDBNullToZero(Comrob["id_proveedor"]); break; case "articulos.id_articulo": FiltrosCompletos += " AND " + m_Agrupar + "=" + Lfx.Data.Connection.ConvertDBNullToZero(Comrob["id_articulo"]); break; case "articulos.id_categoria": FiltrosCompletos += " AND " + m_Agrupar + "=" + Lfx.Data.Connection.ConvertDBNullToZero(Comrob["id_categoria"]); break; } TotalNC = this.Connection.FieldDecimal("SELECT SUM(comprob_detalle.importe*(1-comprob.descuento/100)*(1+comprob.interes/100)) AS total FROM comprob, comprob_detalle, articulos WHERE " + FiltrosCompletos + " GROUP BY comprob.id_comprob"); TotalNCCosto = this.Connection.FieldDecimal("SELECT SUM(comprob_detalle.costo) AS total FROM comprob, comprob_detalle, articulos WHERE " + FiltrosCompletos + " GROUP BY " + m_Agrupar); string Detalle = null; switch (m_Agrupar) { case "articulos.id_proveedor": Detalle = this.Connection.FieldString("SELECT nombre_visible FROM personas WHERE id_persona=" + Lfx.Data.Connection.ConvertDBNullToZero(Comrob["id_proveedor"]).ToString()); break; case "articulos.id_marca": Detalle = this.Connection.FieldString("SELECT nombre FROM marcas WHERE id_marca=" + Lfx.Data.Connection.ConvertDBNullToZero(Comrob["id_marca"]).ToString()); break; case "articulos.id_articulo": Detalle = this.Connection.FieldString("SELECT nombre FROM articulos WHERE id_articulo=" + Lfx.Data.Connection.ConvertDBNullToZero(Comrob["id_articulo"]).ToString()); break; case "articulos.id_categoria": Detalle = this.Connection.FieldString("SELECT nombre FROM articulos_categorias WHERE id_categoria=" + Lfx.Data.Connection.ConvertDBNullToZero(Comrob["id_categoria"]).ToString()); break; } decimal ComprobTotal = System.Convert.ToDecimal(Comrob["total"]) - TotalNC; decimal ComprobTotalCosto = System.Convert.ToDecimal(Comrob["totalcosto"]) - TotalNCCosto; decimal ComprobDiferencia = ComprobTotal - ComprobTotalCosto; if (Detalle == null || Detalle.Length == 0) { Detalle = "(Sin especificar)"; } Reng.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(Detalle)); Reng.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(Lfx.Types.Formatting.FormatNumber(System.Convert.ToDecimal(Comrob["cantart"]), Lbl.Sys.Config.Articulos.Decimales))); Reng.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(System.Convert.ToInt32(Comrob["cantfact"]))); Reng.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(Lfx.Types.Formatting.FormatCurrency(ComprobTotalCosto, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales))); Reng.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(Lfx.Types.Formatting.FormatCurrency(ComprobTotal, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales))); Reng.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(Lfx.Types.Formatting.FormatCurrency(ComprobDiferencia, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales))); Total += ComprobTotal; TotalCosto += ComprobTotalCosto; ReportSheet.Rows.Add(Reng); Diferencia += ComprobDiferencia; } Lazaro.Pres.Spreadsheet.Row RengTotal = new Lazaro.Pres.Spreadsheet.Row(); RengTotal.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell("Total")); RengTotal.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(" ")); RengTotal.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(" ")); RengTotal.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(TotalCosto)); RengTotal.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(Total)); RengTotal.Cells.Add(new Lazaro.Pres.Spreadsheet.Cell(Diferencia)); ReportSheet.Rows.Add(RengTotal); ReportListView.FromSheet(ReportSheet); this.Report = new Lazaro.Pres.Spreadsheet.Workbook(); this.Report.Sheets.Add(ReportSheet); return(new Lfx.Types.SuccessOperationResult()); }