This commit is contained in:
2025-06-11 17:38:28 -07:00
13 changed files with 3286 additions and 1291 deletions

View File

@@ -399,15 +399,43 @@ Public Class ClsGenerales
Try Try
SqlAdapter.Fill(DSet) SqlAdapter.Fill(DSet)
DSet.Tables(0).TableName = "Indicadores" If DSet.Tables.Count > 0 Then
DSet.Tables(1).TableName = "DetalleDia" Select Case Opcion
DSet.Tables(2).TableName = "DetalleAnualesMes" Case 1 ' Cuentas por Cobrar
DSet.Tables(3).TableName = "VentasPorVendedor" DSet.Tables(0).TableName = "Indicadores"
DSet.Tables(4).TableName = "VentasPorClasificacion" If DSet.Tables.Count > 1 Then DSet.Tables(1).TableName = "DetalleDia"
DSet.Tables(5).TableName = "VentasPorMarca" If DSet.Tables.Count > 2 Then DSet.Tables(2).TableName = "DetalleAnualesMes"
DSet.Tables(6).TableName = "VentasPorPS" If DSet.Tables.Count > 3 Then DSet.Tables(3).TableName = "VentasPorVendedor"
DSet.Tables(7).TableName = "VentasPorCliente" If DSet.Tables.Count > 4 Then DSet.Tables(4).TableName = "VentasPorClasificacion"
DSet.Tables(8).TableName = "VentasPorProveedor" If DSet.Tables.Count > 5 Then DSet.Tables(5).TableName = "VentasPorMarca"
If DSet.Tables.Count > 6 Then DSet.Tables(6).TableName = "VentasPorPS"
If DSet.Tables.Count > 7 Then DSet.Tables(7).TableName = "VentasPorCliente"
If DSet.Tables.Count > 8 Then DSet.Tables(8).TableName = "VentasPorProveedor"
Case 2 ' Recuperación
DSet.Tables(0).TableName = "CarteraPorSubproyecto"
If DSet.Tables.Count > 1 Then DSet.Tables(1).TableName = "CarteraPorVendedor"
If DSet.Tables.Count > 2 Then DSet.Tables(2).TableName = "RecuperacionPorSubproyecto"
If DSet.Tables.Count > 3 Then DSet.Tables(3).TableName = "RecuperacionPorVendedor"
If DSet.Tables.Count > 4 Then DSet.Tables(4).TableName = "RecuperacionPorCliente"
If DSet.Tables.Count > 5 Then DSet.Tables(5).TableName = "CxCMensual"
Case 3 'Compras
If DSet.Tables.Count > 1 Then DSet.Tables(1).TableName = "ComprasPorClasificación"
If DSet.Tables.Count > 2 Then DSet.Tables(2).TableName = "ComprasPorMarca"
If DSet.Tables.Count > 3 Then DSet.Tables(3).TableName = "ComprasPorPS"
If DSet.Tables.Count > 4 Then DSet.Tables(4).TableName = "ComprasPorProveedor"
Case 4 'Cuentas Por Pagar
DSet.Tables(0).TableName = "CxPPorSubproyecto"
If DSet.Tables.Count > 1 Then DSet.Tables(1).TableName = "CxPPorProveedor"
If DSet.Tables.Count > 2 Then DSet.Tables(2).TableName = "PagosPorSubproyecto"
If DSet.Tables.Count > 3 Then DSet.Tables(3).TableName = "PagosPorProveedor"
If DSet.Tables.Count > 4 Then DSet.Tables(4).TableName = "CxPMensual"
End Select
End If
Catch ex As Exception Catch ex As Exception
' Manejo de errores ' Manejo de errores
@@ -720,55 +748,55 @@ Public Class ClsGenerales
End Try End Try
Return Retorno Return Retorno
End Function End Function
#End Region #End Region
'#Region " E S T A D O S" '#Region " E S T A D O S"
' Public Function GetGralEstados() As Boolean ' Public Function GetGralEstados() As Boolean
' Dim Retorno As Boolean = False ' Dim Retorno As Boolean = False
' DataAdapter("PA_Gral_EstadoGet") ' DataAdapter("PA_Gral_EstadoGet")
' Try ' Try
' SqlAdapter.Fill(Data) ' SqlAdapter.Fill(Data)
' Retorno = True ' Retorno = True
' Catch ex As Exception ' Catch ex As Exception
' OnError("Ocurrió un error al obtener el Catálogo de Estados.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) ' OnError("Ocurrió un error al obtener el Catálogo de Estados.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
' End Try ' End Try
' Return Retorno ' Return Retorno
' End Function ' End Function
'#End Region '#End Region
'#Region " M U N I C I P I O S" '#Region " M U N I C I P I O S"
' Public Function GetGralMunicipios() As Boolean ' Public Function GetGralMunicipios() As Boolean
' Dim Retorno As Boolean = False ' Dim Retorno As Boolean = False
' DataAdapter("PA_Gral_MunicipioGet") ' DataAdapter("PA_Gral_MunicipioGet")
' Try ' Try
' SqlAdapter.Fill(Data) ' SqlAdapter.Fill(Data)
' Retorno = True ' Retorno = True
' Catch ex As Exception ' Catch ex As Exception
' OnError("Ocurrió un error al obtener el Catálogo de Municipios.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) ' OnError("Ocurrió un error al obtener el Catálogo de Municipios.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
' End Try ' End Try
' Return Retorno ' Return Retorno
' End Function ' End Function
'#End Region '#End Region
'#Region " P A I S E S" '#Region " P A I S E S"
' Public Function GetGralPaises() As Boolean ' Public Function GetGralPaises() As Boolean
' Dim Retorno As Boolean = False ' Dim Retorno As Boolean = False
' DataAdapter("PA_Gral_PaisGet") ' DataAdapter("PA_Gral_PaisGet")
' Try ' Try
' SqlAdapter.Fill(Data) ' SqlAdapter.Fill(Data)
' Retorno = True ' Retorno = True
' Catch ex As Exception ' Catch ex As Exception
' OnError("Ocurrió un error al obtener el Catálogo de Paises.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) ' OnError("Ocurrió un error al obtener el Catálogo de Paises.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
' End Try ' End Try
' Return Retorno ' Return Retorno
' End Function ' End Function
'#End Region '#End Region
#Region " P O B L A C I O N E S" #Region " P O B L A C I O N E S"
Public Function GetGralPoblaciones() As Boolean Public Function GetGralPoblaciones() As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False

View File

@@ -7728,7 +7728,7 @@ Public Class ClsVentas
End Function End Function
Public Function GetSMSIndicadores(Opcion As Integer, FechaInicio As Date, FechaFin As Date, CveUsuario As Integer, CveVendedor As Integer, CveGerenteVendedor As Integer, CveUsuarioTecnico As Integer, CveEmpresa As Integer) As Boolean Public Function GetSMSIndicadores(Opcion As Integer, FechaInicio As Date, FechaFin As Date, CveUsuario As Integer, CveVendedor As Integer, CveUsuarioTecnico As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
DataAdapter("PA_SMS_IndicadoresGet") DataAdapter("PA_SMS_IndicadoresGet")
With SqlAdapter.SelectCommand.Parameters With SqlAdapter.SelectCommand.Parameters
@@ -7737,7 +7737,6 @@ Public Class ClsVentas
.Add("@FechaFin", SqlDbType.Date).Value = FechaFin .Add("@FechaFin", SqlDbType.Date).Value = FechaFin
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@CveVendedor", SqlDbType.Int).Value = CveVendedor .Add("@CveVendedor", SqlDbType.Int).Value = CveVendedor
.Add("@CveGerenteVendedor", SqlDbType.Int).Value = CveGerenteVendedor
.Add("@CveUsuarioTecnico", SqlDbType.Int).Value = CveUsuarioTecnico .Add("@CveUsuarioTecnico", SqlDbType.Int).Value = CveUsuarioTecnico
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With End With

View File

@@ -574,7 +574,7 @@
</script> </script>
<script> <script>
function LimpiaCeros(Divisor) { function LimpiaCeros(Divisor) {
$('.ceros').each(function (i, obj) { $('.ceros').each(function (i, obj) {
if ($(this).html() == '0.00' || $(this).html() == '0.00%') { if ($(this).html() == '0.00' || $(this).html() == '0.00%') {
$(this).html('-'); $(this).html('-');

View File

@@ -231,6 +231,14 @@
<asp:Label runat="server" Text='<%# Eval("ActosImp16", "{0:N2}") %>'></asp:Label> <asp:Label runat="server" Text='<%# Eval("ActosImp16", "{0:N2}") %>'></asp:Label>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Right">
<HeaderTemplate>
<asp:Label data-toggle="tooltip" data-placement="top" ToolTip="IVA SubTotal Importación No Tangibles 16%." runat="server">SubTotal <br/> Imp. No Tan.16%</asp:Label>
</HeaderTemplate>
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("ActosImpNotan16", "{0:N2}") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<%-- <asp:BoundField HeaderText="SubTotal 8%" DataField="valorActosImp8" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />--%> <%-- <asp:BoundField HeaderText="SubTotal 8%" DataField="valorActosImp8" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />--%>
<asp:TemplateField ItemStyle-HorizontalAlign="Right"> <asp:TemplateField ItemStyle-HorizontalAlign="Right">
<HeaderTemplate> <HeaderTemplate>
@@ -318,14 +326,6 @@
<asp:Label runat="server" Text='<%# Eval("ValorIvaNoDeducible08", "{0:N2}") %>'></asp:Label> <asp:Label runat="server" Text='<%# Eval("ValorIvaNoDeducible08", "{0:N2}") %>'></asp:Label>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Right">
<HeaderTemplate>
<asp:Label data-toggle="tooltip" data-placement="top" ToolTip="IVA SubTotal Importación No Tangibles 16%." runat="server">SubTotal <br/> Imp. No Tan.16%</asp:Label>
</HeaderTemplate>
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("ActosImpNotan16", "{0:N2}") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns> </Columns>
</asp:GridView> </asp:GridView>
</div> </div>

View File

@@ -7,8 +7,16 @@ using System.Linq;
using System.Text; using System.Text;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
using static Extensiones.ModExtensiones; using Microsoft.VisualBasic.CompilerServices;
using System.IO;
using GemBox.Spreadsheet;
using System.Globalization;
using System.Text.RegularExpressions;
using System.Drawing;
using static Extensiones.ModExtensiones;
using ADSNetLibrary.SIGAPI.Models.Agropecuaria.Embarques;
//using DocumentFormat.OpenXml.Spreadsheet;
public partial class Contabilidad_RepIVA : ClsPaginas public partial class Contabilidad_RepIVA : ClsPaginas
{ {
#region PROPIEDADES #region PROPIEDADES
@@ -30,9 +38,21 @@ public partial class Contabilidad_RepIVA : ClsPaginas
} }
private DataTable DtIVAA private DataTable DtIVAA
{ {
get { return DtIVAAcreditable = (DataTable)ViewState["DtIVAA"]; } get { return DtIVAA = (DataTable)ViewState["DtIVAA"]; }
set { ViewState["DtIVAA"] = value; } set { ViewState["DtIVAA"] = value; }
} }
private DataTable DtIVA2
{
get { return DtIVA2 = (DataTable)ViewState["DtIVA2"]; }
set { ViewState["DtIVA2"] = value; }
}
private DataTable DtRetIVA
{
get { return DtRetIVA = (DataTable)ViewState["DtRetIVA"]; }
set { ViewState["DtRetIVA"] = value; }
}
private double TCEspecifico private double TCEspecifico
{ {
get { return TCEspecifico = (double)ViewState["TCEspecifico"]; } get { return TCEspecifico = (double)ViewState["TCEspecifico"]; }
@@ -120,7 +140,8 @@ public partial class Contabilidad_RepIVA : ClsPaginas
if (ObjCont.GetRepIVAAcumulado(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), Conciliado, 3, DdlCuenta.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) if (ObjCont.GetRepIVAAcumulado(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), Conciliado, 3, DdlCuenta.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
{ {
GvIVA2.DataSource = ObjCont.DtResultados; DtIVA2 = ObjCont.DtResultados.Copy();
GvIVA2.DataSource = DtIVA2;
} }
if (UsuarioActual.CveEmpresa == 119) if (UsuarioActual.CveEmpresa == 119)
@@ -128,7 +149,8 @@ public partial class Contabilidad_RepIVA : ClsPaginas
divRetIVA.Visible = true; divRetIVA.Visible = true;
if (ObjCont.GetRepIVAAcumulado(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), Conciliado, 4, DdlCuenta.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) if (ObjCont.GetRepIVAAcumulado(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), Conciliado, 4, DdlCuenta.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
{ {
GvRetIVA.DataSource = ObjCont.DtResultados; DtRetIVA = ObjCont.DtResultados.Copy();
GvRetIVA.DataSource = DtRetIVA;
} }
} }
} }
@@ -192,19 +214,21 @@ public partial class Contabilidad_RepIVA : ClsPaginas
protected void LnkPdf_Click(object sender, EventArgs e) protected void LnkPdf_Click(object sender, EventArgs e)
{ {
ImprimirCrystal("PDF"); //ImprimirCrystal("PDF");
ImprimirStimulsoft();
//ImprimirGembox("PDF");
} }
protected void LnkExcel_Click(object sender, EventArgs e) protected void LnkExcel_Click(object sender, EventArgs e)
{ {
ImprimirGembox(); ImprimirGembox("EXCEL");
} }
protected void LnkExcel2_Click(object sender, EventArgs e) protected void LnkExcel2_Click(object sender, EventArgs e)
{ {
ImprimirCrystal("EXCEL2"); ImprimirCrystal("EXCEL2");
} }
private void ImprimirGembox() private void ImprimirGembox(string Formato)
{ {
String FechaF; String FechaF;
if (txtFechaF.Text == "" || txtFechaF.Text == "__/__/____") { FechaF = "-1"; } else { FechaF = $"Fecha Final: {txtFechaF.Text}"; } if (txtFechaF.Text == "" || txtFechaF.Text == "__/__/____") { FechaF = "-1"; } else { FechaF = $"Fecha Final: {txtFechaF.Text}"; }
@@ -215,21 +239,323 @@ public partial class Contabilidad_RepIVA : ClsPaginas
var filtros = $"Filtros: {FechaI} {FechaF} {TipoMov}"; var filtros = $"Filtros: {FechaI} {FechaF} {TipoMov}";
GvA.ExportToExcelGembox("ReporteIVA", UsuarioActual, "Reporte de IVA", DatosFiltros: filtros); var Gv = TT.ActiveTabIndex == 0 ? GvT : GvA;
var GvExtra1 = TT.ActiveTabIndex == 0 ? GvIEPSA : GvIVA2;
var GvExtra2 = TT.ActiveTabIndex == 0 ? GvIVAA : UsuarioActual.CveEmpresa == 119 ? GvRetIVA : null;
var NombreHoja = TT.ActiveTabIndex == 0 ? "IVA Trasladado" : "IVA Acreditable";
var NombreHojaExtra1 = TT.ActiveTabIndex == 0 ? "IEPS por Porcentaje" : "IVA por Porcentaje";
var NombreHojaExtra2 = TT.ActiveTabIndex == 0 ? "IVA por Porcentaje" : "Ret IVA";
ExportarGembox(Formato, Gv, "ReporteIVA", UsuarioActual, "Reporte de IVA", NombreHoja: NombreHoja, DatosFiltros: filtros, GvExtra1: GvExtra1, NombreHojaExtra1: NombreHojaExtra1, GvExtra2: GvExtra2, NombreHojaExtra2: NombreHojaExtra2);
} }
public override void VerifyRenderingInServerForm(Control control) public override void VerifyRenderingInServerForm(Control control)
{ {
} }
public void ExportarGembox(String Formato,GridView GridView, string NombreArchivoXLSx, Usuario Usuario, string Titulo, string NombreHoja = "Hoja1", string DatoTituloExtra = "", string DatosFiltros = "", int AnchoImagen = 100, int AlturaImagen = 100, GridView GvExtra1 = null, string NombreHojaExtra1 = "Hoja2", GridView GvExtra2 = null, string NombreHojaExtra2 = "Hoja3")
{
StringWriter stringWriter = new StringWriter();
HtmlTextWriter writer = new HtmlTextWriter(stringWriter);
GridView.RenderControl(writer);
HtmlLoadOptions htmlDefault = GemBox.Spreadsheet.LoadOptions.HtmlDefault;
MemoryStream memoryStream = new MemoryStream(htmlDefault.Encoding.GetBytes(stringWriter.ToString()));
memoryStream.Position = 0L;
StreamReader streamReader = new StreamReader(memoryStream);
string text = streamReader.ReadToEnd();
streamReader.Dispose();
memoryStream.Dispose();
stringWriter.Dispose();
string input = text;
input = Regex.Replace(input, "\\<[\\/]*a[^\\>]*\\>", "");
MemoryStream stream = new MemoryStream(htmlDefault.Encoding.GetBytes(input));
SpreadsheetInfo.SetLicense(SerialGemBoxSpreadsheet());
ExcelFile excelFile = ExcelFile.Load(stream, htmlDefault);
checked
{
if (Usuario != null)
{
int num = 6;
int num2 = 2;
ExcelWorksheet excelWorksheet = excelFile.Worksheets[0];
excelWorksheet.Rows.InsertEmpty(0, num);
foreach (ExcelRow row in excelWorksheet.Rows)
{
foreach (ExcelCell allocatedCell in row.AllocatedCells)
{
if (allocatedCell.Value != null)
{
string s = allocatedCell.Value.ToString().Trim();
if (decimal.TryParse(s, NumberStyles.Any, CultureInfo.InvariantCulture, out var result))
{
allocatedCell.Value = result;
}
}
}
}
CellRange usedCellRange = excelWorksheet.GetUsedCellRange(ignoreCellsWithoutValue: true);
if ((object)usedCellRange == null)
{
return;
}
usedCellRange.Style.Font.Name = "Calibri Light";
CellRange subrangeAbsolute = excelWorksheet.Cells.GetSubrangeAbsolute(1, usedCellRange.FirstColumnIndex, 1, usedCellRange.LastColumnIndex);
subrangeAbsolute.Merged = true;
subrangeAbsolute.Value = Usuario.Empresa.Empresa;
subrangeAbsolute.Style.Font.Size = 360;
subrangeAbsolute.Style.Font.Name = "Calibri Light";
subrangeAbsolute.Style.HorizontalAlignment = HorizontalAlignmentStyle.Center;
subrangeAbsolute.Style.VerticalAlignment = VerticalAlignmentStyle.Center;
CellRange subrangeAbsolute2 = excelWorksheet.Cells.GetSubrangeAbsolute(3, usedCellRange.FirstColumnIndex, 3, usedCellRange.LastColumnIndex);
subrangeAbsolute2.Merged = true;
subrangeAbsolute2.Value = Titulo;
subrangeAbsolute2.Style.Font.Size = 400;
subrangeAbsolute2.Style.Font.Name = "Calibri Light";
subrangeAbsolute2.Style.HorizontalAlignment = HorizontalAlignmentStyle.Center;
subrangeAbsolute2.Style.VerticalAlignment = VerticalAlignmentStyle.Center;
if (DatoTituloExtra.Length > 0)
{
CellRange subrangeAbsolute3 = excelWorksheet.Cells.GetSubrangeAbsolute(num, usedCellRange.FirstColumnIndex, num, usedCellRange.LastColumnIndex);
subrangeAbsolute3.Merged = true;
subrangeAbsolute3.Value = DatoTituloExtra;
subrangeAbsolute3.Style.Font.Size = 400;
subrangeAbsolute3.Style.Font.Name = "Calibri Light";
subrangeAbsolute3.Style.HorizontalAlignment = HorizontalAlignmentStyle.Left;
subrangeAbsolute3.Style.VerticalAlignment = VerticalAlignmentStyle.Center;
}
if (DatosFiltros.Length > 0)
{
string[] array = DatosFiltros.Split('|');
excelWorksheet.Rows.InsertEmpty(num, array.Count());
string[] array2 = array;
foreach (string value in array2)
{
CellRange subrangeAbsolute4 = excelWorksheet.Cells.GetSubrangeAbsolute(num, usedCellRange.FirstColumnIndex, num, usedCellRange.LastColumnIndex);
subrangeAbsolute4.Merged = true;
subrangeAbsolute4.Value = value;
subrangeAbsolute4.Style.Font.Size = 240;
subrangeAbsolute4.Style.Font.Name = "Calibri Light";
subrangeAbsolute4.Style.HorizontalAlignment = HorizontalAlignmentStyle.Left;
subrangeAbsolute4.Style.VerticalAlignment = VerticalAlignmentStyle.Center;
num++;
}
}
int firstColumnIndex = usedCellRange.FirstColumnIndex;
int lastColumnIndex = usedCellRange.LastColumnIndex;
for (int j = firstColumnIndex; j <= lastColumnIndex; j++)
{
excelWorksheet.Rows[num].Cells[j].Style.Font.Size = 240;
excelWorksheet.Rows[num].Cells[j].Style.HorizontalAlignment = HorizontalAlignmentStyle.Center;
excelWorksheet.Rows[num].Cells[j].Style.VerticalAlignment = VerticalAlignmentStyle.Center;
excelWorksheet.Rows[num].Cells[j].Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255));
excelWorksheet.Rows[num].Cells[j].Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255);
if (j > 0)
{
try
{
excelWorksheet.Columns[j].AutoFit(1.0);
}
catch (Exception ex)
{
ProjectData.SetProjectError(ex);
Exception ex2 = ex;
ProjectData.ClearProjectError();
}
}
}
int num3 = GridView.Rows.Count + num + num2;
excelWorksheet.Rows[num3].Cells[1].Value = "Usuario Imprimió";
excelWorksheet.Rows[num3 + 1].Cells[1].Value = Usuario.Nombre;
excelWorksheet.Rows[num3].Cells[3].Value = "Fecha Impresión";
excelWorksheet.Rows[num3 + 1].Cells[3].Value = ClsPaginas.NowADS().ToString("dd/MM/yyyy");
FileInfo fileInfo = new FileInfo($"{Usuario.Empresa.Ruta}/Logo.png");
if (fileInfo.Exists)
{
string path = $"{Usuario.Empresa.Ruta}/Logo.png";
using StreamReader streamReader2 = new StreamReader(path);
MemoryStream memoryStream2 = new MemoryStream();
streamReader2.BaseStream.CopyTo(memoryStream2);
excelWorksheet.Pictures.Add(memoryStream2, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel);
}
int firstColumnIndex2 = usedCellRange.FirstColumnIndex;
int lastColumnIndex2 = usedCellRange.LastColumnIndex;
for (int k = firstColumnIndex2; k <= lastColumnIndex2; k++)
{
if (k > 0)
{
bool flag = true;
excelWorksheet.Columns[k + 1].Style.NumberFormat = "#,##0.00";
try
{
excelWorksheet.Columns[k].AutoFit(1.0);
}
catch (Exception ex3)
{
ProjectData.SetProjectError(ex3);
Exception ex4 = ex3;
ProjectData.ClearProjectError();
}
}
}
excelFile.Worksheets[0].Name = NombreHoja;
if (GvExtra1 != null)
{
StringWriter stringWriter1 = new StringWriter();
HtmlTextWriter writer1 = new HtmlTextWriter(stringWriter1);
GvExtra1.RenderControl(writer1);
MemoryStream memoryStream1 = new MemoryStream(htmlDefault.Encoding.GetBytes(stringWriter1.ToString()));
memoryStream1.Position = 0L;
StreamReader streamReader1 = new StreamReader(memoryStream1);
string input1 = streamReader1.ReadToEnd();
streamReader1.Dispose();
memoryStream1.Dispose();
stringWriter1.Dispose();
input1 = Regex.Replace(input1, "\\<[\\/]*a[^\\>]*\\>", "");
MemoryStream stream1 = new MemoryStream(htmlDefault.Encoding.GetBytes(input1));
SpreadsheetInfo.SetLicense(SerialGemBoxSpreadsheet());
ExcelFile excelFile2 = ExcelFile.Load(stream1, htmlDefault);
ExcelWorksheet excelWorksheet2 = excelFile2.Worksheets[0];
int num4 = excelWorksheet2.CalculateMaxUsedColumns();
int num5 = num4 - 1;
for (int l = 0; l <= num5; l++)
{
excelWorksheet2.Columns[l].AutoFit(1.0, excelWorksheet2.Rows[1], excelWorksheet2.Rows[excelWorksheet2.Rows.Count - 1]);
excelWorksheet2.Cells[0, l].Style.FillPattern.SetSolid(ColorTranslator.FromHtml("#4b77be"));
excelWorksheet2.Cells[0, l].Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255);
}
excelFile.Worksheets.AddCopy(NombreHojaExtra1, excelWorksheet2);
}
if (GvExtra2 != null)
{
StringWriter stringWriter2 = new StringWriter();
HtmlTextWriter writer2 = new HtmlTextWriter(stringWriter2);
GvExtra2.RenderControl(writer2);
MemoryStream memoryStream2 = new MemoryStream(htmlDefault.Encoding.GetBytes(stringWriter2.ToString()));
memoryStream2.Position = 0L;
StreamReader streamReader2 = new StreamReader(memoryStream2);
string input2 = streamReader2.ReadToEnd();
streamReader2.Dispose();
memoryStream2.Dispose();
stringWriter2.Dispose();
input2 = Regex.Replace(input2, "\\<[\\/]*a[^\\>]*\\>", "");
MemoryStream stream2 = new MemoryStream(htmlDefault.Encoding.GetBytes(input2));
SpreadsheetInfo.SetLicense(SerialGemBoxSpreadsheet());
ExcelFile excelFile3 = ExcelFile.Load(stream2, htmlDefault);
ExcelWorksheet excelWorksheet3 = excelFile3.Worksheets[0];
int num4 = excelWorksheet3.CalculateMaxUsedColumns();
int num5 = num4 - 1;
for (int l = 0; l <= num5; l++)
{
excelWorksheet3.Columns[l].AutoFit(1.0, excelWorksheet3.Rows[1], excelWorksheet3.Rows[excelWorksheet3.Rows.Count - 1]);
excelWorksheet3.Cells[0, l].Style.FillPattern.SetSolid(ColorTranslator.FromHtml("#4b77be"));
excelWorksheet3.Cells[0, l].Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255);
}
excelFile.Worksheets.AddCopy(NombreHojaExtra2, excelWorksheet3);
}
int num6 = 8;
int num7 = 0;
int num8 = -1;
if (DatosFiltros.Trim().Length > 0)
{
num8 = 0;
}
int num9 = excelWorksheet.Rows.Count - 4;
for (num6 = 8; num6 <= num9; num6++)
{
try
{
switch (GridView.Rows[num7].CssClass.Trim())
{
case "Totales":
excelWorksheet.Cells.GetSubrangeRelative(num6 + num8, 0, usedCellRange.LastColumnIndex + 1, 1).Style.FillPattern.SetSolid(ColorTranslator.FromHtml("#67809f"));
excelWorksheet.Cells.GetSubrangeRelative(num6 + num8, 0, usedCellRange.LastColumnIndex + 1, 1).Style.Font.Weight = 1000;
excelWorksheet.Cells.GetSubrangeRelative(num6 + num8, 0, usedCellRange.LastColumnIndex + 1, 1).Style.Font.Color = ColorTranslator.FromHtml("#ddd");
break;
case "SubTotales2":
excelWorksheet.Cells.GetSubrangeRelative(num6 + num8, 0, usedCellRange.LastColumnIndex + 1, 1).Style.FillPattern.SetSolid(ColorTranslator.FromHtml("#c0c0c0"));
excelWorksheet.Cells.GetSubrangeRelative(num6 + num8, 0, usedCellRange.LastColumnIndex + 1, 1).Style.Font.Weight = 1000;
excelWorksheet.Cells.GetSubrangeRelative(num6 + num8, 0, usedCellRange.LastColumnIndex + 1, 1).Style.Font.Color = ColorTranslator.FromHtml("#000077");
break;
case "SubTotales":
excelWorksheet.Cells.GetSubrangeRelative(num6 + num8, 0, usedCellRange.LastColumnIndex + 1, 1).Style.FillPattern.SetSolid(ColorTranslator.FromHtml("#dddddd"));
excelWorksheet.Cells.GetSubrangeRelative(num6 + num8, 0, usedCellRange.LastColumnIndex + 1, 1).Style.Font.Weight = 1000;
excelWorksheet.Cells.GetSubrangeRelative(num6 + num8, 0, usedCellRange.LastColumnIndex + 1, 1).Style.Font.Color = ColorTranslator.FromHtml("#67809F");
break;
}
}
catch (Exception ex5)
{
ProjectData.SetProjectError(ex5);
Exception ex6 = ex5;
ProjectData.ClearProjectError();
}
num7++;
}
}
if (Formato == "EXCEL")
{
excelFile.Save(System.Web.HttpContext.Current.Response, $"{NombreArchivoXLSx}.xlsx");
}
else
{
foreach (var worksheet in excelFile.Worksheets)
{
var printOptions = worksheet.PrintOptions;
printOptions.LeftMargin =
printOptions.RightMargin =
printOptions.TopMargin =
printOptions.BottomMargin = 0;
printOptions.AutomaticPageBreakScalingFactor = 93;
printOptions.Portrait = false;
}
var saveOptions = new PdfSaveOptions();
saveOptions.SelectionType = SelectionType.EntireFile;
excelFile.Save(System.Web.HttpContext.Current.Response, $"{NombreArchivoXLSx}.pdf", saveOptions);
}
}
}
public void ImprimirStimulsoft() public void ImprimirStimulsoft()
{ {
String FechaF; String FechaF;
if (txtFechaF.Text == "" || txtFechaF.Text == "__/__/____") { FechaF = "-1"; } else { FechaF = $"&emsp;<b>Fecha Final:</b> {txtFechaF.Text}"; } if (txtFechaF.Text == "" || txtFechaF.Text == "__/__/____") { FechaF = "-1"; } else { FechaF = $"Fecha Final:{txtFechaF.Text}"; }
String FechaI; String FechaI;
if (txtFechaI.Text == "" || txtFechaI.Text == "__/__/____") { FechaI = "-1"; } else { FechaI = $"&emsp;<b>Fecha Inicial:</b> {txtFechaI.Text}"; } if (txtFechaI.Text == "" || txtFechaI.Text == "__/__/____") { FechaI = "-1"; } else { FechaI = $"Fecha Inicial: {txtFechaI.Text} "; }
String TipoMov; String TipoMov;
if (DdlTipoMovto.SelectedItem.Text == "Todos") { TipoMov = ""; } else { TipoMov = $"&emsp;<b>Tipo Movimiento:</b> {DdlTipoMovto.SelectedItem.Text}"; } if (DdlTipoMovto.SelectedItem.Text == "Todos") { TipoMov = ""; } else { TipoMov = $"Tipo Movimiento: {DdlTipoMovto.SelectedItem.Text} "; }
if (GvT.Rows.Count > 0 || GvA.Rows.Count > 0) if (GvT.Rows.Count > 0 || GvA.Rows.Count > 0)
{ {
@@ -247,7 +573,7 @@ public partial class Contabilidad_RepIVA : ClsPaginas
List<ReportParameter> para = new List<ReportParameter>(); List<ReportParameter> para = new List<ReportParameter>();
para.Add(new ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)); para.Add(new ReportParameter("Empresa", UsuarioActual.Empresa.Empresa));
para.Add(new ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)); para.Add(new ReportParameter("UsuarioImprimio", UsuarioActual.Nombre));
para.Add(new ReportParameter("Filtros", $"<b>Filtros:</b> {FechaI}{FechaF}{TipoMov}")); para.Add(new ReportParameter("Filtros", $"Filtros: {FechaI}{FechaF}{TipoMov}"));
if (Imagen.Exists) if (Imagen.Exists)
{ {
@@ -258,8 +584,9 @@ public partial class Contabilidad_RepIVA : ClsPaginas
para.Add(new ReportParameter("LogoPath", "")); para.Add(new ReportParameter("LogoPath", ""));
} }
DataTable Dt = DtIVAAcreditable.Copy(); DataTable Dt = TT.ActiveTabIndex == 0 ? DtIVATrasladado.Copy() : DtIVAAcreditable.Copy();
string Formato = "RepIVAAcreditable.mrt";
string Formato = TT.ActiveTabIndex == 0 ? "RepIVA.mrt" : "RepIVAAcreditable.mrt";
para.Add(new ReportParameter("Formato", "PDF")); para.Add(new ReportParameter("Formato", "PDF"));
@@ -270,24 +597,48 @@ public partial class Contabilidad_RepIVA : ClsPaginas
List<ReportDataSource> lrds = new List<ReportDataSource>(); List<ReportDataSource> lrds = new List<ReportDataSource>();
ReportDataSource rds = new ReportDataSource(); ReportDataSource rds = new ReportDataSource();
rds.Name = "RepIVAAcreditable"; rds.Name = TT.ActiveTabIndex == 0 ? "RepIVA" : "RepIVAAcreditable";
rds.Value = Dt; rds.Value = Dt;
lrds.Add(rds); lrds.Add(rds);
if (DtIEPSA != null) //RepIVA
if (TT.ActiveTabIndex == 0)
{ {
ReportDataSource rds2 = new ReportDataSource(); if (DtIEPSA != null)
rds2.Name = "IEPSPorcentaje"; {
rds2.Value = DtIEPSA; ReportDataSource rds2 = new ReportDataSource();
lrds.Add(rds2); rds2.Name = "IEPSPorcentaje";
rds2.Value = DtIEPSA;
lrds.Add(rds2);
}
if (DtIVAA != null)
{
ReportDataSource rds3 = new ReportDataSource();
rds3.Name = "IVAPorcentaje";
rds3.Value = DtIVAA;
lrds.Add(rds3);
}
} }
if (DtIVAA != null) //RepIVAAcreditable
if (TT.ActiveTabIndex == 1)
{ {
ReportDataSource rds3 = new ReportDataSource(); if (DtIVA2 != null)
rds3.Name = "IVAPorcentaje"; {
rds3.Value = DtIVAA; ReportDataSource rds4 = new ReportDataSource();
lrds.Add(rds3); rds4.Name = "IVAPorcentaje";
rds4.Value = DtIVA2;
lrds.Add(rds4);
}
if (DtRetIVA != null)
{
ReportDataSource rds5 = new ReportDataSource();
rds5.Name = "RetIVAPorcentaje";
rds5.Value = DtRetIVA;
lrds.Add(rds5);
}
} }
string Extension = "pdf"; string Extension = "pdf";
@@ -424,7 +775,6 @@ public partial class Contabilidad_RepIVA : ClsPaginas
protected void LnkTxtDIOT_Click(object sender, EventArgs e) protected void LnkTxtDIOT_Click(object sender, EventArgs e)
{ {
StringBuilder SBDIOT = new StringBuilder(); StringBuilder SBDIOT = new StringBuilder();
int Conciliado = DdlTipoMovto.SelectedValue.ToEntero(); int Conciliado = DdlTipoMovto.SelectedValue.ToEntero();
@@ -568,28 +918,6 @@ public partial class Contabilidad_RepIVA : ClsPaginas
} }
} }
//MemoryStream ms = new MemoryStream();
//TextWriter tw = new StreamWriter(ms, System.Text.Encoding.UTF8);
//tw.Write(SBDIOT.ToString());
//tw.Flush();
//byte[] bytes = ms.ToArray();
//ms.Close();
//Response.Clear();
//Response.AppendHeader("Content-Length", text.Length.ToString());
//Response.ContentType = "text/plain";
//Response.AddHeader("content-disposition", $"attachment; filename=DIOT_{ txtFechaI.Text.ToDate().ToString("ddMMyyyy") }_{txtFechaI.Text.ToDate().ToString("ddMMyyyy") }.txt");
//Response.BinaryWrite(bytes);
//Response.End();
} }
static DataTable AcumularYReemplazar(DataTable dt) static DataTable AcumularYReemplazar(DataTable dt)
@@ -704,136 +1032,6 @@ public partial class Contabilidad_RepIVA : ClsPaginas
} }
} }
//public void IImprimirbytesPDF(byte[] bytes, string NombreArchivo = "Reporte", string Formato = "PDF", bool Descarga = false, string Content_Disposition = "attachment", string Extension = "")
//{
// // limpio ReportViwer
// string mimeType = null;
// // If Descarga Then
// // Try
// // bytes = bytes
// // File.WriteAllBytes(String.Format("{0}PDF/whatever.gif", UsuarioActual.Empresa.Ruta), img)
// // Catch ex As Exception
// // If UsuarioActual.CveRol = 1 Then
// // Alert(ex.Message, TipoMensaje.MsgAdvertencia)
// // Else
// // Alert("Ocurrió un error al generar la descarga. Favor de contactar a soporte tecnico cod'IMPDFclspag'", TipoMensaje.MsgAdvertencia)
// // End If
// // End Try
// // End If
// try
// {
// bytes = bytes;
// //Response.Buffer = true;
// //Response.Clear();
// //if (Formato == "PDF")
// // Response.ContentType = "application/pdf";
// //else
// // Response.ContentType = mimeType;
// //Response.ClearHeaders();
// //string fileExtension = "";
// //if (!string.IsNullOrEmpty(Extension))
// // fileExtension = Extension;
// //else
// // fileExtension = Formato == "PDF" ? "pdf" : "xls";
// //Response.AddHeader("content-disposition", string.Format("{0}; filename=\"{1}.{2}\"", Content_Disposition, NombreArchivo, fileExtension));
// //Response.BinaryWrite(bytes); // create the file
// //Response.Flush(); // send it to the client to download
// //bytes = null;
// //HttpContext.Current.Response.SuppressContent = true;
// //HttpContext.Current.ApplicationInstance.CompleteRequest();
// Alert("ok");
// }
// // HttpContext.Current.Response.End()
// catch (Exception ex)
// {
// if (UsuarioActual.CveRol == 1) {
// }
// else
// Alert("Ocurrió un error al generar la descarga. Favor de contactar a soporte tecnico cod:'IMPDFclspag'", TipoMensaje.MsgAdvertencia);
// }
//}
//public byte[] IImprimirSubRepPDFCrystal(string RutaReporte, DataTable DataSource, List<CrystalParametro> Parametros, DataTable DataSource1, DataTable DataSource2, string SubRep1, string SubRep2, string NombreArchivo = "Reporte", string Formato = "PDF", ReportDocument MR = null/* TODO Change to default(_) if this is not a reference type */)
//{
// // limpio ReportViwer
// Stopwatch sw = Stopwatch.StartNew();
// if (MR == null)
// MR = new ReportDocument();
// ReportDocument SR1 = new ReportDocument();
// ReportDocument SR2 = new ReportDocument();
// byte[] Bytes = null;
// ExportFormatType formatType = ExportFormatType.NoFormat;
// try
// {
// MR.Load(RutaReporte);
// SR1 = MR.OpenSubreport(SubRep1);
// SR2 = MR.OpenSubreport(SubRep2);
// MR.SetDataSource(DataSource);
// SR1.SetDataSource(DataSource1);
// SR2.SetDataSource(DataSource2);
// foreach (CrystalParametro item in Parametros)
// MR.SetParameterValue(item.Nombre, item.Valor);
// switch (Formato)
// {
// case "PDF":
// {
// formatType = ExportFormatType.PortableDocFormat;
// break;
// }
// case "EXCEL":
// {
// formatType = ExportFormatType.Excel;
// break;
// }
// }
// System.IO.Stream Stream = MR.ExportToStream(formatType);
// BinaryReader BD = new BinaryReader(MR.ExportToStream(formatType));
// Bytes = BD.ReadBytes(System.Convert.ToInt32(MR.ExportToStream(formatType).Length));
// BD.Dispose();
// Stream.Dispose();
// }
// // Dim Buffer(CInt(Stream.Length)) As Byte
// // Bytes = Buffer
// // MR.ExportToHttpResponse(formatType, Response, True, NombreArchivo)
// catch (CrystalReportsException ex)
// {
// if(ex.Message != null)
// {
// Alert(ex.Message);
// }
// if (ex.InnerException != null)
// {
// Alert(ex.InnerException.Message);
// }
// }
// // HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017
// // GuardaLog($"Error: {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}")
// catch (Exception ex)
// {
// //GuardaLog(ex.InnerException != null && ex.Message != null ? $"Error: {ex.InnerException.Message ?? ex.Message} | Descripcion: {ex.InnerException != null && ex.InnerException.InnerException != null && ex.InnerException.InnerException.Message != null ? ex.InnerException.InnerException.Message : ex.InnerException != null && ex.InnerException.Message != null ? ex.InnerException.Message : "Sin descripcion"} Ruta {RutaReporte}" : $"Sin descripción - Ruta {RutaReporte}");
// if (ex.Message != null)
// {
// Alert(ex.Message);
// }
// if (ex.InnerException != null)
// {
// Alert(ex.InnerException.Message);
// }
// }
// sw.Stop();
// if (sw.Elapsed.TotalSeconds > 10)
// // GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ");
// if (MR != null)
// MR.Dispose();
// return Bytes;
//}
protected void GvIEPSA_RowDataBound(object sender, GridViewRowEventArgs e) protected void GvIEPSA_RowDataBound(object sender, GridViewRowEventArgs e)
{ {
if (e.Row.RowType == DataControlRowType.DataRow && e.Row.DataKey("PorcentajeIEPS").Trim() == "") if (e.Row.RowType == DataControlRowType.DataRow && e.Row.DataKey("PorcentajeIEPS").Trim() == "")

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1665,7 +1665,7 @@ Partial Class Inicio
Dim FechaI As Date = txtFechaInicioSMS.Text.ToDate ' Now.FirstDayOfMonth Dim FechaI As Date = txtFechaInicioSMS.Text.ToDate ' Now.FirstDayOfMonth
Dim FechaF As Date = txtFechaFinSMS.Text.ToDate 'Now.LastDayOfMonth Dim FechaF As Date = txtFechaFinSMS.Text.ToDate 'Now.LastDayOfMonth
If Gral.GetSMSIndicadores(Opcion, FechaI, FechaF, UsuarioActual.CveUsuario, CveVendedor, CveGerenteVendedor, CveUsuarioTecnico, UsuarioActual.CveEmpresa) Then If Gral.GetSMSIndicadores(Opcion, FechaI, FechaF, UsuarioActual.CveUsuario, CveVendedor, CveUsuarioTecnico, UsuarioActual.CveEmpresa) Then
ds = Gral.DataSetResultados ds = Gral.DataSetResultados
End If End If
'0-ventas totales, 1-comisiones totales, 2-medicos sin consumo, 3-top10medicos, 4-top5marcas, 5-num pacientes '0-ventas totales, 1-comisiones totales, 2-medicos sin consumo, 3-top10medicos, 4-top5marcas, 5-num pacientes

View File

@@ -310,18 +310,16 @@
cursor: pointer; cursor: pointer;
} }
/* Alinear celda y contenido a la derecha */ /* Alinear celda y contenido a la derecha */
.celda-derecha { .celda-derecha {
text-align: right !important; text-align: right !important;
}
}
.txt-merma {
/* Ancho reducido al 50% */
margin-left: 30px !important; /* Mueve el TextBox a la derecha dentro de la celda */
display: block !important; /* Permite que margin-left:auto funcione */
/* Alinea el texto interno a la derecha */
}
.txt-merma {
/* Ancho reducido al 50% */
margin-left: 30px !important; /* Mueve el TextBox a la derecha dentro de la celda */
display: block !important; /* Permite que margin-left:auto funcione */
/* Alinea el texto interno a la derecha */
}
</style> </style>
</asp:Content> </asp:Content>
@@ -364,16 +362,16 @@
<div class="col-md-3"> <div class="col-md-3">
<div class="form-group"> <div class="form-group">
<label>Fecha</label> <label>Fecha</label>
<div class="input-group input-sm input-small date date-picker" style="height: 30px;" data-date-format="dd/mm/yyyy"> <div class="input-group input-sm input-small date date-picker" style="height: 30px;" data-date-format="dd/mm/yyyy">
<asp:TextBox ID="Txtfecha" runat="server" <asp:TextBox ID="Txtfecha" runat="server"
CssClass="form-control" CssClass="form-control"
style="margin-top: -6px;" Style="margin-top: -6px;"
Width="100%" Width="100%"
CausesValidation="true" CausesValidation="true"
MaxLength="10"></asp:TextBox> MaxLength="10"></asp:TextBox>
<span class="input-group-btn"> <span class="input-group-btn">
<asp:LinkButton ID="imgCalendarioF" class="btn default " style="margin-top: -11px; height: 29px;" Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton> <asp:LinkButton ID="imgCalendarioF" class="btn default " Style="margin-top: -11px; height: 29px;" Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span> </span>
</div> </div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="Txtfecha" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender> <ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="Txtfecha" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
@@ -428,7 +426,7 @@
ControlToValidate="TxtDescripcion" ControlToValidate="TxtDescripcion"
ErrorMessage="Descripción requerida" ErrorMessage="Descripción requerida"
Display="None" Display="None"
CssClass="text-danger" CssClass="text-danger"
ValidationGroup="GrpGuardar" /> ValidationGroup="GrpGuardar" />
<label for="<%= TxtDescripcion.ClientID.ToString()%>">Descripcion</label> <label for="<%= TxtDescripcion.ClientID.ToString()%>">Descripcion</label>
</div> </div>
@@ -437,7 +435,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<div class="portlet light xspadding bordered"> <div class="portlet light xspadding bordered">
<div class="portlet-title"> <div class="portlet-title">
@@ -471,13 +469,13 @@
<div class="portlet-body"> <div class="portlet-body">
<div class="row"> <div class="row">
<div id="PanelProducto" runat="server"> <div id="PanelProducto" runat="server">
<asp:label ID="LblProducto" class="col-md-1" runat="server" style="max-width: 70px;" Text="Producto"></asp:label> <asp:Label ID="LblProducto" class="col-md-1" runat="server" Style="max-width: 70px;" Text="Producto"></asp:Label>
<div class="col-md-3"> <div class="col-md-3">
<ADS:Dropdownlost ID="DdlPS" runat="server" Width="100%" CssStyle="width: 100%;" <ADS:Dropdownlost ID="DdlPS" runat="server" Width="100%" CssStyle="width: 100%;"
CssClass="select2me" CssClass="select2me"
CssClassDdl="form-control" DataTextField="PSCodigo" CssClassDdl="form-control" DataTextField="PSCodigo"
DataValueField="CvePS" Enabled="false" /> DataValueField="CvePS" Enabled="false" />
</div> </div>
</div> </div>
<div class="col-md-4 d-flex align-items-center" style="gap: 10px;"> <div class="col-md-4 d-flex align-items-center" style="gap: 10px;">
<asp:LinkButton ID="BtnAgregarProducto" runat="server" <asp:LinkButton ID="BtnAgregarProducto" runat="server"
@@ -852,13 +850,13 @@
<asp:TextBox ID="TxtCantidadPT" runat="server" <asp:TextBox ID="TxtCantidadPT" runat="server"
Text='<%# Bind("Cantidad") %>' Text='<%# Bind("Cantidad") %>'
CssClass="form-control" CssClass="form-control"
style="text-align: right;" Style="text-align: right;"
TextMode="Number" TextMode="Number"
min="0" min="0"
step="1" step="1"
data-original='<%# Eval("Cantidad") %>' data-original='<%# Eval("Cantidad") %>'
onchange="validarCantidad(this)" onchange="validarCantidad(this)"
ItemStyle-HorizontalAlign="Right"/> ItemStyle-HorizontalAlign="Right" />
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
</Columns> </Columns>
@@ -872,18 +870,17 @@
CssClass="table table-striped table-hover" GridLines="None" Width="100%"> CssClass="table table-striped table-hover" GridLines="None" Width="100%">
<Columns> <Columns>
<asp:BoundField DataField="PSCodigo" HeaderText="Producto" /> <asp:BoundField DataField="PSCodigo" HeaderText="Producto" />
<asp:BoundField DataField="Cantidad" HeaderText="Cantidad" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right"/> <asp:BoundField DataField="Cantidad" HeaderText="Cantidad" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
<asp:TemplateField HeaderText="Devolución"> <asp:TemplateField HeaderText="Devolución">
<ItemTemplate> <ItemTemplate>
<asp:TextBox ID="TxtDevolucionMP" runat="server" <asp:TextBox ID="TxtDevolucionMP" runat="server"
Text="0" Text="0"
style="width: 50%; text-align: right; margin-left: 38px; display: block;" Style="width: 50%; text-align: right; margin-left: 38px; display: block;"
TextMode="Number" TextMode="Number"
min="0" min="0"
step="1" step="1"
data-original='<%# Eval("Cantidad") %>' data-original='<%# Eval("Cantidad") %>'
onchange="validarCantidad(this)" onchange="validarCantidad(this)" />
/>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
@@ -947,15 +944,14 @@
<ItemTemplate> <ItemTemplate>
<asp:TextBox ID="TxtMerma" runat="server" Text="0" <asp:TextBox ID="TxtMerma" runat="server" Text="0"
CssClass="txt-merma" TextMode="Number" step="0.01" min="0" CssClass="txt-merma" TextMode="Number" step="0.01" min="0"
style="width: 50%; text-align: right;" Style="width: 50%; text-align: right;"
onchange="calcularDevolucion(this);" onchange="calcularDevolucion(this);"
data-original='<%# Eval("Cantidad")%>' data-original='<%# Eval("Cantidad")%>' />
/>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField HeaderText="Devolución" ItemStyle-CssClass="celda-derecha"> <asp:TemplateField HeaderText="Devolución" ItemStyle-CssClass="celda-derecha">
<ItemTemplate> <ItemTemplate>
<asp:Label ID="LblDevolucion" runat="server" Text='<%# Eval("Cantidad", "{0:N2}") %>' CssClass="devolucion-label" style="text-align: right;"/> <asp:Label ID="LblDevolucion" runat="server" Text='<%# Eval("Cantidad", "{0:N2}") %>' CssClass="devolucion-label" Style="text-align: right;" />
<asp:HiddenField ID="HfDevolucion" runat="server" Value='<%# Eval("Cantidad", "{0:N2}") %>' /> <asp:HiddenField ID="HfDevolucion" runat="server" Value='<%# Eval("Cantidad", "{0:N2}") %>' />
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>

View File

@@ -125,6 +125,7 @@ Partial Class OP_OP
BtnCancelarOP.Visible = (CveOP > 0 AndAlso TipoEstatus <> 3 AndAlso TipoEstatus <> 4) BtnCancelarOP.Visible = (CveOP > 0 AndAlso TipoEstatus <> 3 AndAlso TipoEstatus <> 4)
End Sub End Sub
#Region "Metodos"
Private Sub CreaPS() Private Sub CreaPS()
DtPS = New DataTable() DtPS = New DataTable()
DtPS.Columns.Add("Tipo", GetType(String)) ' Producto, MP, MO, CI DtPS.Columns.Add("Tipo", GetType(String)) ' Producto, MP, MO, CI
@@ -247,7 +248,9 @@ Partial Class OP_OP
UpBtns.Update() UpBtns.Update()
UpModalCancelar.Update() UpModalCancelar.Update()
End Sub End Sub
#End Region
#Region "Cargar"
Private Sub CargaDatos() Private Sub CargaDatos()
If CveOP > 0 Then If CveOP > 0 Then
Dim ObjOP As New ClsOP() Dim ObjOP As New ClsOP()
@@ -367,7 +370,9 @@ Partial Class OP_OP
DdlPS.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) DdlPS.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
End If End If
End Sub End Sub
#End Region
#Region "Producto"
Protected Sub BtnAgregarProducto_Click(sender As Object, e As EventArgs) Handles BtnAgregarProducto.Click Protected Sub BtnAgregarProducto_Click(sender As Object, e As EventArgs) Handles BtnAgregarProducto.Click
If DdlPS.SelectedValue = "-1" Then Exit Sub If DdlPS.SelectedValue = "-1" Then Exit Sub
@@ -480,33 +485,16 @@ Partial Class OP_OP
Next Next
End Sub End Sub
Protected Sub GvProductos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvProductos.RowDataBound Protected Sub GvProductos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvProductos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.RowType = DataControlRowType.DataRow Then
Dim btnEliminar As LinkButton = DirectCast(e.Row.FindControl("BtnEliminar"), LinkButton) Dim btnEliminar As LinkButton = DirectCast(e.Row.FindControl("BtnEliminar"), LinkButton)
btnEliminar.Visible = (TipoEstatus <> 3) btnEliminar.Visible = (TipoEstatus <> 3)
End If End If
End Sub End Sub
#End Region
Protected Sub LnkSolicitarMP_Click(sender As Object, e As EventArgs) #Region "Simular MP"
' Cargar almacenes
DdlAlmacenOrigenMP.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros("CveTipoAlmacen = 1")
DdlAlmacenOrigenMP.DataBind()
DdlAlmacenDestinoMP.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros("CveTipoAlmacen = 28")
DdlAlmacenDestinoMP.DataBind()
GvMPAgregados.DataKeyNames = New String() {"CvePSMateriaPrima", "CveUMMateriaPrima"}
' Filtrar MP no surtida
Dim DtMPFaltante As DataTable = DtMP.FiltraParametros("Surtido = 0").Copy()
GvMPAgregados.DataSource = DtMPFaltante
GvMPAgregados.DataBind()
' Mostrar modal
RegistraScript("$('#DVModalSolicitarMP').modal('show');")
UpModalMP.Update()
End Sub
Protected Sub BtnSimularMP_Click(sender As Object, e As EventArgs) Protected Sub BtnSimularMP_Click(sender As Object, e As EventArgs)
If CveOP <> -1 Then Exit Sub If CveOP <> -1 Then Exit Sub
If DdlPS.SelectedValue = "-1" Then Exit Sub If DdlPS.SelectedValue = "-1" Then Exit Sub
@@ -664,7 +652,28 @@ Partial Class OP_OP
Return ObjOP.DtResultados.Copy() Return ObjOP.DtResultados.Copy()
End Function End Function
#End Region
#Region "Solicitar MP"
Protected Sub LnkSolicitarMP_Click(sender As Object, e As EventArgs)
' Cargar almacenes
DdlAlmacenOrigenMP.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros("CveTipoAlmacen = 1")
DdlAlmacenOrigenMP.DataBind()
DdlAlmacenDestinoMP.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros("CveTipoAlmacen = 28")
DdlAlmacenDestinoMP.DataBind()
GvMPAgregados.DataKeyNames = New String() {"CvePSMateriaPrima", "CveUMMateriaPrima"}
' Filtrar MP no surtida
Dim DtMPFaltante As DataTable = DtMP.FiltraParametros("Surtido = 0").Copy()
GvMPAgregados.DataSource = DtMPFaltante
GvMPAgregados.DataBind()
' Mostrar modal
RegistraScript("$('#DVModalSolicitarMP').modal('show');")
UpModalMP.Update()
End Sub
Protected Sub BtnGuardarSolicitudMP_Click(sender As Object, e As EventArgs) Protected Sub BtnGuardarSolicitudMP_Click(sender As Object, e As EventArgs)
Dim CveTraspasoSolicitud As Integer = -1 Dim CveTraspasoSolicitud As Integer = -1
@@ -772,6 +781,9 @@ Partial Class OP_OP
ObjInventario.Dispose() ObjInventario.Dispose()
End Sub End Sub
#End Region
#Region "Guardar OP"
Protected Sub BtnGuardarOP_Click(sender As Object, e As EventArgs) Protected Sub BtnGuardarOP_Click(sender As Object, e As EventArgs)
' Validaciones básicas ' Validaciones básicas
@@ -930,6 +942,8 @@ Partial Class OP_OP
End If End If
End Sub End Sub
#End Region
#Region "Cancelar" #Region "Cancelar"
Protected Sub BtnCancelarOP_Click(sender As Object, e As EventArgs) Protected Sub BtnCancelarOP_Click(sender As Object, e As EventArgs)
' Cargar almacenes ' Cargar almacenes

View File

@@ -500,82 +500,99 @@ Partial Class Ventas_PVCobranza
Dim GvRow As GridViewRow = DirectCast(ImgBtn.BindingContainer, GridViewRow) Dim GvRow As GridViewRow = DirectCast(ImgBtn.BindingContainer, GridViewRow)
Dim TieneError As Boolean = False Dim TieneError As Boolean = False
Dim CveVenta As Integer = e.CommandArgument.ToString.ToEntero Dim CveVenta As Integer = e.CommandArgument.ToString.ToEntero
Dim CondicionesPagoContado As Boolean = GvRow.DataKey("CondicionesPago") = "0"
Dim ObjVentas As New ClsVentas Dim RowVenta As DataRow = Nothing
ObjVentas.IniciaTransacSQL()
Using ObjVta As New ClsVentas
Try If ObjVta.GetVenta(CveVenta, UsuarioActual.CveEmpresa) Then
If Not ObjVentas.UpdateAsignaVentaCobranza(CveVenta, 1, UsuarioActual.CveUsuario, -1, "", Now) Then RowVenta = ObjVta.DtResultados.Copy().Rows(0)
End If
End Using
If RowVenta IsNot Nothing Then
Dim ObjVentas As New ClsVentas
ObjVentas.IniciaTransacSQL()
Try
If Not ObjVentas.UpdateAsignaVentaCobranza(CveVenta, 1, UsuarioActual.CveUsuario, -1, "", Now) Then
TieneError = True
End If
HdnCveVenta.Value = CveVenta.ToString
Dim Saldo As Decimal = RowVenta("Saldo").ToString().ToDecimal()
Dim CveFormaPago33 As String = RowVenta("CveFormaPago33").ToString()
HdnCveCliente.Value = RowVenta("CveCliente").ToString()
TxtImporteContado.Text = Saldo.FormatoNumero
HdnTotal.Value = Saldo.ToString()
TxtImporteEfectivo.Focus()
LtlNombre.Text = RowVenta("AtencionA").ToString()
LtlFolio.Text = RowVenta("SerieFolio").ToString()
LtlSaldo.Text = Saldo.FormatoNumero
LtlMoneda.Text = RowVenta("Moneda").ToString()
Dim CondicionesPagoContado As Boolean = RowVenta("CondicionesPago").ToString() = "0"
Dim CveMoneda As Integer = RowVenta("CveMoneda").ToString().ToEntero()
HdnMoneda.Value = CveMoneda.ToString()
If CveMoneda = 2 Then
DivUSD.Visible = True
TxtTC.Text = GlobalTipoCambio(Now).ToString()
TxtTotalMXN.Text = (TxtImporteContado.Text.ToDecimal() * TxtTC.Text.ToDecimal()).FormatoNumero()
End If
HdnVentaCondicionesPago.Value = RowVenta("CondicionesPago").ToString()
HdnPlazoCobranza.Value = GvRow.DataKey("PlazoCobranza")
If UsuarioActual.CveEmpresa.Contiene(189, 193, 195, 196, 197) AndAlso RowVenta("TipoDocto").ToString().Contiene("Rem", "Ant") Then
DivAnticipo.Visible = True
ImgAntiPend.Visible = True
End If
If CondicionesPagoContado Then
'según la forma de pago va a establecer el valor para pago.
Select Case CveFormaPago33
Case "1"
TxtImporteEfectivo.Text = Saldo.FormatoNumero
Case "2"
TxtImporteCheque.Text = Saldo.FormatoNumero
Case "3"
TxtImporteTransferencia.Text = Saldo.FormatoNumero
Case "4"
TxtImporteCredito.Text = Saldo.FormatoNumero
Case "18"
TxtImporteDebito.Text = Saldo.FormatoNumero
Case Else
TxtImporteEfectivo.Text = Saldo.FormatoNumero
End Select
DivContadoBancos.Visible = True
BtnPagar.Text = "Pagar"
Else
DivContadoBancos.Visible = False
BtnPagar.Text = "Emitir a crédito"
End If
Catch ex As Exception
TieneError = True TieneError = True
End If End Try
HdnCveVenta.Value = CveVenta.ToString
HdnCveCliente.Value = GvRow.DataKey("CveCliente")
TxtImporteContado.Text = GvRow.DataKey("Saldo").FormatoNumero
HdnTotal.Value = GvRow.DataKey("Saldo")
TxtImporteEfectivo.Focus()
LtlNombre.Text = GvRow.DataKey("AtencionA")
LtlFolio.Text = GvRow.DataKey("SerieFolio")
LtlSaldo.Text = GvRow.DataKey("Saldo").ToDecimal.FormatoNumero
LtlMoneda.Text = GvRow.DataKey("Moneda")
Dim CveMoneda As Integer = GvRow.DataKey("CveMoneda").ToEntero() 'carga información para cobranza
HdnMoneda.Value = CveMoneda.ToString() If Not TieneError Then
If CveMoneda = 2 Then ObjVentas.Commit()
DivUSD.Visible = True PnlContado.Visible = True
TxtTC.Text = GlobalTipoCambio(Now).ToString()
TxtTotalMXN.Text = (TxtImporteContado.Text.ToDecimal() * TxtTC.Text.ToDecimal()).FormatoNumero()
End If
HdnVentaCondicionesPago.Value = GvRow.DataKey("CondicionesPago")
HdnPlazoCobranza.Value = GvRow.DataKey("PlazoCobranza")
If UsuarioActual.CveEmpresa.Contiene(189, 193, 195, 196, 197) AndAlso GvRow.DataKey("TipoDocto").Contiene("Rem", "Ant") Then
DivAnticipo.Visible = True
ImgAntiPend.Visible = True
End If
If CondicionesPagoContado Then
'según la forma de pago va a establecer el valor para pago.
Select Case GvRow.DataKey("CveFormaPago33")
Case "1"
TxtImporteEfectivo.Text = GvRow.DataKey("Saldo").FormatoNumero
Case "2"
TxtImporteCheque.Text = GvRow.DataKey("Saldo").FormatoNumero
Case "3"
TxtImporteTransferencia.Text = GvRow.DataKey("Saldo").FormatoNumero
Case "4"
TxtImporteCredito.Text = GvRow.DataKey("Saldo").FormatoNumero
Case "18"
TxtImporteDebito.Text = GvRow.DataKey("Saldo").FormatoNumero
Case Else
TxtImporteEfectivo.Text = GvRow.DataKey("Saldo").FormatoNumero
End Select
DivContadoBancos.Visible = True
BtnPagar.Text = "Pagar"
Else Else
DivContadoBancos.Visible = False ObjVentas.RollBack()
BtnPagar.Text = "Emitir a crédito" PnlContado.Visible = False
Alert("Hubo un error al asignar datos de cobranza", TipoMensaje.MsgInformacion)
End If End If
Catch ex As Exception ObjVentas.Dispose()
TieneError = True End If
End Try
'carga información para cobranza 'CargaDatos()
If Not TieneError Then
ObjVentas.Commit()
PnlContado.Visible = True
Else
ObjVentas.RollBack()
PnlContado.Visible = False
Alert("Hubo un error al asignar datos de cobranza", TipoMensaje.MsgInformacion)
End If
ObjVentas.Dispose()
'CargaDatos()
End If End If
End Sub End Sub
@@ -906,6 +923,23 @@ Partial Class Ventas_PVCobranza
SaldoPendientePagos -= PagoEfectivo SaldoPendientePagos -= PagoEfectivo
End If End If
If SobranteFaltante <> 0 Then
Dim Pago As New VentaPago
Pago.ImportePagoVenta = Math.Abs(SobranteFaltante)
Pago.ImportePago = Math.Abs(SobranteFaltante)
Pago.CveIE = -1
Pago.CveMonedaPago = VentaActual.CveMoneda
Pago.Fecha = NowADS()
Pago.Referencia = VentaActual.SerieFolio
Pago.TipoPago = "XXX"
Pago.OtroGastoIngreso = SobranteFaltante
Dim ErrorConta As Boolean = AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjConta)
If ErrorConta Then
MsgError = "Error en aplicación de sobrante/faltante"
End If
End If
If SaldoPendienteVenta > 0 AndAlso Not ChkSobFaltante.Checked Then If SaldoPendienteVenta > 0 AndAlso Not ChkSobFaltante.Checked Then
MsgError = "Tiene saldo pendiente por aplicar" MsgError = "Tiene saldo pendiente por aplicar"
End If End If

View File

@@ -7699,7 +7699,7 @@
<div class="row" id="DivRNCCargosDetalle" runat="server" visible="false"> <div class="row" id="DivRNCCargosDetalle" runat="server" visible="false">
<div class="col-md-12" style="max-height: 440px; overflow: auto"> <div class="col-md-12" style="max-height: 440px; overflow: auto">
<asp:GridView ID="GvRemisionesNCDetalle" runat="server" AutoGenerateColumns="False" <asp:GridView ID="GvRemisionesNCDetalle" runat="server" AutoGenerateColumns="False"
DataKeyNames="CveVenta,CveVentaDetalleRNC,CvePS,PU,PorcentajeIVA" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn" GridLines="None"> DataKeyNames="CveVenta,CveVentaDetalleRNC,CvePS,PU,PorcentajeIVA,Saldo" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn" GridLines="None">
<Columns> <Columns>
<asp:TemplateField> <asp:TemplateField>
<ItemTemplate> <ItemTemplate>

View File

@@ -2866,6 +2866,8 @@ Partial Class Ventas
TmpDT.Columns.Add("PSAlterno", GetType(String)) TmpDT.Columns.Add("PSAlterno", GetType(String))
TmpDT.Columns.Add("Costo", GetType(Decimal)) TmpDT.Columns.Add("Costo", GetType(Decimal))
TmpDT.Columns("Costo").DefaultValue = 0D TmpDT.Columns("Costo").DefaultValue = 0D
TmpDT.Columns.Add("UltimoCosto", GetType(Decimal))
TmpDT.Columns("UltimoCosto").DefaultValue = 0D
GvPS.DataSource = ObjVentas.DtResultados GvPS.DataSource = ObjVentas.DtResultados
GvPS.DataBind() GvPS.DataBind()
@@ -2887,6 +2889,8 @@ Partial Class Ventas
TmpDT = ObjCGame.DtResultados TmpDT = ObjCGame.DtResultados
TmpDT.Columns.Add("Costo", GetType(Decimal)) TmpDT.Columns.Add("Costo", GetType(Decimal))
TmpDT.Columns("Costo").DefaultValue = 0D TmpDT.Columns("Costo").DefaultValue = 0D
TmpDT.Columns.Add("UltimoCosto", GetType(Decimal))
TmpDT.Columns("UltimoCosto").DefaultValue = 0D
If Not TmpDT.Columns.Contains("NumeroParte") Then TmpDT.Columns.Add("NumeroParte", GetType(String)) If Not TmpDT.Columns.Contains("NumeroParte") Then TmpDT.Columns.Add("NumeroParte", GetType(String))
GvPS.DataBind() GvPS.DataBind()
@@ -2935,6 +2939,9 @@ Partial Class Ventas
TmpDT.Columns.Add("NumeroParte", GetType(String)) TmpDT.Columns.Add("NumeroParte", GetType(String))
TmpDT.Columns.Add("Costo", GetType(Decimal)) TmpDT.Columns.Add("Costo", GetType(Decimal))
TmpDT.Columns("Costo").DefaultValue = 0D TmpDT.Columns("Costo").DefaultValue = 0D
TmpDT.Columns.Add("UltimoCosto", GetType(Decimal))
TmpDT.Columns("UltimoCosto").DefaultValue = 0D
GvPS.DataSource = ObjVentas.DtResultados GvPS.DataSource = ObjVentas.DtResultados
GvPS.DataBind() GvPS.DataBind()
@@ -8112,6 +8119,8 @@ Partial Class Ventas
If CreditoDispo < 0 Then If CreditoDispo < 0 Then
BtnsFacturar.Visible = False BtnsFacturar.Visible = False
BtnGenerarRemision.Visible = False BtnGenerarRemision.Visible = False
TieneBloqueoPorCreditoVencimiento = 1
Alert("El límite de crédito se ha excedido", TipoMensaje.MsgAdvertencia) Alert("El límite de crédito se ha excedido", TipoMensaje.MsgAdvertencia)
End If End If
End If End If
@@ -8126,9 +8135,7 @@ Partial Class Ventas
BtnGenerarRemision.Visible = False BtnGenerarRemision.Visible = False
Alert(OpcionMsg, TipoMensaje.MsgAdvertencia) Alert(OpcionMsg, TipoMensaje.MsgAdvertencia)
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso ClienteEsDistribuidor AndAlso Opcion.Contiene(2, 3) Then TieneBloqueoPorCreditoVencimiento = 1
TieneBloqueoPorCreditoVencimiento = 1
End If
End If End If
End If End If
End If End If
@@ -8432,6 +8439,12 @@ Partial Class Ventas
End If End If
'SI ES COTIZACION, PERMITIR CREAR UN DOCUMENTO NUEVO TIPO "PA"
If DdlTipoComprobante.SelectedValue = "Cot" AndAlso UsuarioActual.Empresa.Funcionalidad(595) = "1" AndAlso TieneBloqueoPorCreditoVencimiento = 1 Then
BtnGeneraAutorizacion.Visible = True
UpFacturar.Update()
End If
End Sub End Sub
@@ -9283,6 +9296,9 @@ Partial Class Ventas
If DrPS IsNot Nothing Then If DrPS IsNot Nothing Then
gvr.FCTextBox("TxtPrecio").Enabled = CBool(DrPS("PrecioLibre")) gvr.FCTextBox("TxtPrecio").Enabled = CBool(DrPS("PrecioLibre"))
End If End If
'PONER LA CLASIFICACION EN TODAS, PARA NO FILTRAR POR CLASIFICACION
gvr.FCDropDownList("DdlClasificacion").SelectedValueExist("-1")
End If End If
If UsuarioActual.TienePermisoProceso(253) Then gvr.FCTextBox("TxtPrecio").Enabled = True If UsuarioActual.TienePermisoProceso(253) Then gvr.FCTextBox("TxtPrecio").Enabled = True
@@ -10381,7 +10397,6 @@ Partial Class Ventas
PU = dr("PU").ToString().ToDecimal * If(DdlMoneda.SelectedValue.ToEntero() = 1, 1, TxtTipoCambio.Text.ToDecimal) PU = dr("PU").ToString().ToDecimal * If(DdlMoneda.SelectedValue.ToEntero() = 1, 1, TxtTipoCambio.Text.ToDecimal)
If UsuarioActual.Empresa.Funcionalidad(602) = "UC" Then 'validación sobre el último costo If UsuarioActual.Empresa.Funcionalidad(602) = "UC" Then 'validación sobre el último costo
If ObjInventarios.GetUltimoCosto(UsuarioActual.CveEmpresa, dr("CvePS").ToString().ToEntero()) Then If ObjInventarios.GetUltimoCosto(UsuarioActual.CveEmpresa, dr("CvePS").ToString().ToEntero()) Then
Dim drps As DataRow = ObjInventarios.DtResultados.FiltroPrimero("") Dim drps As DataRow = ObjInventarios.DtResultados.FiltroPrimero("")
If drps IsNot Nothing Then If drps IsNot Nothing Then
@@ -10391,6 +10406,7 @@ Partial Class Ventas
Else Else
Costo = ObjInventarios.GetCostoPS(dr("CvePS").ToString().ToEntero(), dr("Cantidad").ToString().ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1) Costo = ObjInventarios.GetCostoPS(dr("CvePS").ToString().ToEntero(), dr("Cantidad").ToString().ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
End If End If
Dim PrecioMinimo As Decimal = 0 Dim PrecioMinimo As Decimal = 0
'RMF. condicion temporal, para reubicación, precio mínimo 'RMF. condicion temporal, para reubicación, precio mínimo
If UsuarioActual.CveEmpresa = 119 Then If UsuarioActual.CveEmpresa = 119 Then
@@ -13781,13 +13797,7 @@ Partial Class Ventas
Timbre.Comprobante.TipoComprobante = If(Obj.TipoDocto.Contiene("Ing", "Ant"), "I", If(Obj.TipoDocto.Contiene("Egs", "Dev"), "E", "")) Timbre.Comprobante.TipoComprobante = If(Obj.TipoDocto.Contiene("Ing", "Ant"), "I", If(Obj.TipoDocto.Contiene("Egs", "Dev"), "E", ""))
Timbre.Comprobante.Folio = Obj.Folio.ToString() Timbre.Comprobante.Folio = Obj.Folio.ToString()
Timbre.Comprobante.Serie = Obj.Serie Timbre.Comprobante.Serie = Obj.Serie
Timbre.Comprobante.Fecha = Obj.FechaCP
If Me.CveVenta = 4381091 Then
Timbre.Comprobante.Fecha = Obj.Fecha
Else
Timbre.Comprobante.Fecha = Obj.FechaCP
End If
Timbre.Comprobante.CondicionesdePago = If(UsuarioActual.CveEmpresa.Contiene(15, 76, 198), "No Aplica", Obj.FormaPago) Timbre.Comprobante.CondicionesdePago = If(UsuarioActual.CveEmpresa.Contiene(15, 76, 198), "No Aplica", Obj.FormaPago)
Timbre.Comprobante.MetodoPago = GlobalDTVtaMetodoPago.FiltroPrimeroValor("ClaveMetodoPagoSAT", $"CveMetodoPago = {Obj.CveMetodoPago}") ' Obj.ClaveMetodoPagoSAT Timbre.Comprobante.MetodoPago = GlobalDTVtaMetodoPago.FiltroPrimeroValor("ClaveMetodoPagoSAT", $"CveMetodoPago = {Obj.CveMetodoPago}") ' Obj.ClaveMetodoPagoSAT
@@ -13890,7 +13900,8 @@ Partial Class Ventas
If Obj.TipoDocto.Contiene("Egs", "Dev") OrElse (NuevaFactura = 1) Then If Obj.TipoDocto.Contiene("Egs", "Dev") OrElse (NuevaFactura = 1) Then
If DtVentasNC IsNot Nothing AndAlso DtVentasNC.Rows.Count > 0 Then If DtVentasNC IsNot Nothing AndAlso DtVentasNC.Rows.Count > 0 Then
Timbre.CFDIRelacionados.UUID.Clear() Timbre.CFDIRelacionados.UUID.Clear()
For Each Dr As DataRow In DtVentasNC.Rows 'QUITAR LAS QUE ESTEN CANCELADAS
For Each Dr As DataRow In DtVentasNC.FiltraParametros("CveEstatusFactura <> 5").Rows
Timbre.CFDIRelacionados.UUID.Add(Dr("FolioFiscal").ToString()) Timbre.CFDIRelacionados.UUID.Add(Dr("FolioFiscal").ToString())
Next Next
Else Else
@@ -21690,6 +21701,9 @@ Partial Class Ventas
TmpDT.Columns.Add("Costo", GetType(Decimal)) TmpDT.Columns.Add("Costo", GetType(Decimal))
TmpDT.Columns("Costo").DefaultValue = 0D TmpDT.Columns("Costo").DefaultValue = 0D
TmpDT.Columns.Add("UltimoCosto", GetType(Decimal))
TmpDT.Columns("UltimoCosto").DefaultValue = 0D
End Sub End Sub
Private Sub CreaDTmpC() Private Sub CreaDTmpC()
DTmpC = New DataTable DTmpC = New DataTable
@@ -22094,6 +22108,20 @@ Partial Class Ventas
End If End If
End If End If
'SI ES FACTURACION DE COTIZACION Y REQUIERE AUTORIZACION, SOLO DEBE PERMITIR ESTA
If UsuarioActual.Empresa.Funcionalidad(595) = "1" AndAlso Request("CveCotizacion") IsNot Nothing AndAlso Request("CveCotizacion").ToString().ToEntero() > 0 AndAlso TieneBloqueoPorAutorizacion = 1 Then
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ing"))
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Egs"))
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Cot"))
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Dev"))
DdlTipoComprobante.SelectedValueExistInsert("PA", "Autorización")
DdlTipoComprobante.SelectedValue = "PA"
BtnCrearApartirDe.Visible = False
UpFacturar.Update()
End If
'[IPP]: FALTA CONFIGURAR Y DAR PERMISO A TODOS LOS QUE TENGAN ACCESO A VENTAS '[IPP]: FALTA CONFIGURAR Y DAR PERMISO A TODOS LOS QUE TENGAN ACCESO A VENTAS
''Puede remisionar ''Puede remisionar
@@ -24729,6 +24757,19 @@ Partial Class Ventas
Exit Sub Exit Sub
End If End If
'si es de FNC contado. bloquear edición si está pagada o en proceso de cobro
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
Using ObjVta As New ClsVentas
If ObjVta.GetVenta(Me.CveVenta, UsuarioActual.CveEmpresa) Then
Dim DbRowVenta As DataRow = ObjVta.DtResultados.FiltroPrimero("")
If DbRowVenta IsNot Nothing AndAlso (DbRowVenta("CveCobranzaEstatus").ToString = "1" OrElse DbRowVenta("Saldo").ToString.ToDecimal = 0) Then
Alert("No se puede actualizar la información de la remisión porque esta en proceso de cobro. Para aplicar cambios se debera de liberar desde el módulo de 'cobro por caja'.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
End Using
End If
Dim OcurrioError As Boolean = False Dim OcurrioError As Boolean = False
Dim ObjVentas As New ClsVentas Dim ObjVentas As New ClsVentas
ObjVentas.IniciaTransacSQL() ObjVentas.IniciaTransacSQL()
@@ -30703,7 +30744,7 @@ Partial Class Ventas
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
Dim ObjMovtos As New ClsMovimientos() Dim ObjMovtos As New ClsMovimientos()
If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveMoneda:=-1) Then If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveMoneda:=-1) Then
DtNC = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'RNC' AND CveVenta > 0 and Saldo > 0", "Moneda,Fecha,Folio") DtNC = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'RNC' AND CveVenta > 0 and Saldo > 1", "Moneda,Fecha,Folio")
End If End If
ObjMovtos.Dispose() ObjMovtos.Dispose()
@@ -30807,7 +30848,7 @@ Partial Class Ventas
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
Dim ObjMovtos As New ClsMovimientos() Dim ObjMovtos As New ClsMovimientos()
If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveMoneda:=-1) Then If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, CveMoneda:=-1) Then
DtNC = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'RNC' AND CveVenta > 0 and Saldo > 0", "Moneda,Fecha,Folio") DtNC = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'RNC' AND CveVenta > 0 and Saldo > 1", "Moneda,Fecha,Folio")
End If End If
ObjMovtos.Dispose() ObjMovtos.Dispose()
@@ -33135,7 +33176,7 @@ Partial Class Ventas
Next Next
If Not Selecciono Then If Not Selecciono Then
Alert("Tiene que seleccionar al menos un concepto y este dege tener una cantidad mayor a 0. Por favor verifique y vuelva a intentar", TipoMensaje.MsgAdvertencia) Alert("Tiene que seleccionar al menos un concepto y este debe tener una cantidad mayor a 0. Por favor verifique y vuelva a intentar", TipoMensaje.MsgAdvertencia)
Exit Sub Exit Sub
End If End If
@@ -35976,7 +36017,7 @@ Partial Class Ventas
#Region "GENERAR AUTORIZACIÓN" #Region "GENERAR AUTORIZACIÓN"
Protected Sub BtnGeneraAutorizacion_Click(sender As Object, e As EventArgs) Protected Sub BtnGeneraAutorizacion_Click(sender As Object, e As EventArgs)
If DdlTipoComprobante.SelectedValue.Contiene("Ped") Then If DdlTipoComprobante.SelectedValue.Contiene("Ped", "Cot") Then
EmitirDocumentoNuevo("PA") EmitirDocumentoNuevo("PA")
End If End If
End Sub End Sub
@@ -36670,10 +36711,15 @@ Partial Class Ventas
Dim ImporteIVA As Decimal = (TotalCalculableImpuestos * PorcentajeIVA).RoundSQL(2) Dim ImporteIVA As Decimal = (TotalCalculableImpuestos * PorcentajeIVA).RoundSQL(2)
Dim TotalRNCDetalle As Decimal = (TotalCalculableImpuestos + ImporteIVA) Dim TotalRNCDetalle As Decimal = (TotalCalculableImpuestos + ImporteIVA)
Dim Saldo As Decimal = GvRow.DataKey("Saldo").ToDecimal()
'AJUSTAR SALDO SI EL TOTAL ES MAYOR
If TotalRNCDetalle > Saldo Then
TotalRNCDetalle = Saldo
End If
TotalRNC += TotalRNCDetalle TotalRNC += TotalRNCDetalle
End If End If
End If End If