This commit is contained in:
RPimienta
2024-09-20 21:57:28 -06:00
28 changed files with 2075 additions and 1354 deletions

View File

@@ -10127,6 +10127,7 @@ Public Class ClsPaginas
PaginaDict.Add("/Contabilidad/RepFisImpuestos.aspx".ToUpper(), 432)
PaginaDict.Add("/Contabilidad/LibroDiario.aspx".ToUpper(), 620)
PaginaDict.Add("/Contabilidad/LibroMayor.aspx".ToUpper(), 619)
PaginaDict.Add("/Contabilidad/LibroMayorCI.aspx".ToUpper(), 619)
PaginaDict.Add("/Contabilidad/Reportes/RepCuadreContaAdmon.aspx".ToUpper(), -1)
PaginaDict.Add("/Contabilidad/Reportes/RepCuadreContaAdmonDetalle.aspx".ToUpper(), -1)
PaginaDict.Add("/Contabilidad/ComparacionesContabilidad.aspx".ToUpper(), 330)
@@ -10168,7 +10169,7 @@ Public Class ClsPaginas
PaginaDict.Add("/Contabilidad/RepEstadoResultadosHorizontal.aspx".ToUpper(), 420)
PaginaDict.Add("/Contabilidad/RepAnexoCatalogoMensualHorizontal.aspx".ToUpper(), -1)
PaginaDict.Add("/Contabilidad/CatBloqueoDiario.aspx".ToUpper(), 680)
PaginaDict.Add("/Contabilidad/LibroMayor2.aspx".ToUpper(), 1353)
'PaginaDict.Add("/Contabilidad/LibroMayor2.aspx".ToUpper(), 1353)
#End Region
@@ -10821,6 +10822,7 @@ Public Class ClsPaginas
PaginaDict.Add("/Ventas/CatMotivosDevoluciones.aspx".ToUpper(), 786)
PaginaDict.Add("/Ventas/CatPSSubProyectosVendedores.aspx".ToUpper(), 787)
PaginaDict.Add("/Ventas/CatMotivosCancelacion.aspx".ToUpper(), 788)
PaginaDict.Add("/Ventas/CatSelectivas.aspx".ToUpper(), 897)
#End Region
#Region "VIA"

View File

@@ -415,7 +415,7 @@ Public Class ClsProductosServicios
Optional RegistroRSCO As String = "-1", Optional FechaVigenciaRSCO As Date = MinFecha, Optional VigenciaIndeterminadaRSCO As Boolean = False, Optional CveTipoEmpacado As Integer = -1, Optional CveTipoOrganico As Integer = -1,
Optional NombreComercial As String = "", Optional NotasAdicionales As String = "", Optional EcommerceEtiquetas As String = "", Optional ActivoEcommerce As Boolean = False, Optional EcommercePrecio As Decimal = 0,
Optional CveClasificacionEcommerce As Integer = -1, Optional EcommerceCantidad As Decimal = 0, Optional CodigoAlterno As String = "-1", Optional PSAlterno As String = "-1", Optional ProductoExhibicion As Boolean = False,
Optional Imagen As String = "", Optional PorcentajeMinimoUtilidad As Decimal = 0) As Integer
Optional Imagen As String = "", Optional PorcentajeMinimoUtilidad As Decimal = 0, Optional CveSelectiva As Integer = -1) As Integer
Dim Retorno As Integer = -1
DataAdapter("PA_ProductosServiciosAdd")
@@ -526,6 +526,7 @@ Public Class ClsProductosServicios
.Add("@ProductoExhibicion", SqlDbType.Bit).Value = ProductoExhibicion
.Add("@Imagen", SqlDbType.VarChar).Value = Imagen
.Add("@PorcentajeMinimoUtilidad", SqlDbType.Decimal).Value = PorcentajeMinimoUtilidad
.Add("@CveSelectiva", SqlDbType.Int).Value = CveSelectiva
End With
Try
@@ -682,7 +683,8 @@ Public Class ClsProductosServicios
Optional CveMaterialPeligroso As Integer = -1, Optional CveEmbalaje As Integer = -1, Optional PesoKg As Decimal = -1, Optional Dimensiones As String = "", Optional CveObjetoImpuesto As Integer = 0,
Optional RegistroRSCO As String = "-1", Optional FechaVigenciaRSCO As Date = MinFecha, Optional VigenciaIndeterminadaRSCO As Boolean = False, Optional CveTipoEmpacado As Integer = -1, Optional CveTipoOrganico As Integer = -1,
Optional NombreComercial As String = "", Optional NotasAdicionales As String = "", Optional EcommerceEtiquetas As String = "", Optional ActivoEcommerce As Boolean = False, Optional EcommercePrecio As Decimal = 0,
Optional CveClasificacionEcommerce As Integer = -1, Optional EcommerceCantidad As Decimal = 0, Optional CodigoAlterno As String = "-1", Optional PSAlterno As String = "-1", Optional ProductoExhibicion As Boolean = False, Optional Imagen As String = "", Optional PorcentajeMinimoUtilidad As Decimal = 0) As Boolean
Optional CveClasificacionEcommerce As Integer = -1, Optional EcommerceCantidad As Decimal = 0, Optional CodigoAlterno As String = "-1", Optional PSAlterno As String = "-1", Optional ProductoExhibicion As Boolean = False, Optional Imagen As String = "", Optional PorcentajeMinimoUtilidad As Decimal = 0,
Optional CveSelectiva As Integer = -1) As Boolean
Dim Retorno As Boolean = False
@@ -792,6 +794,7 @@ Public Class ClsProductosServicios
.Add("@ProductoExhibicion", SqlDbType.Bit).Value = ProductoExhibicion
.Add("@Imagen", SqlDbType.VarChar).Value = Imagen
.Add("@PorcentajeMinimoUtilidad", SqlDbType.Decimal).Value = PorcentajeMinimoUtilidad
.Add("@CveSelectiva", SqlDbType.Int).Value = CveSelectiva
End With
Try
@@ -1663,6 +1666,119 @@ Public Class ClsProductosServicios
End Function
Public Function AddSelectiva(Selectiva As String, CveUsuario As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Gral_SelectivasAdd")
With SqlAdapter.SelectCommand.Parameters
.Add("@Selectiva", SqlDbType.VarChar).Value = Selectiva
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch Ex1 As SqlException
Me.OnError("Ocurrió un error al Guardar la Selectiva.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
Catch ex As Exception
OnError("Ocurrió un error al Guardar la Selectiva.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
Public Function UpdateSelectiva(CveSelectiva As Integer, Selectiva As String, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Gral_SelectivasUpdate")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveSelectiva", SqlDbType.Int).Value = CveSelectiva
.Add("@Selectiva", SqlDbType.VarChar).Value = Selectiva
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch Ex1 As SqlException
Me.OnError("Ocurrió un error al Guardar la Selectiva.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
Catch ex As Exception
OnError("Ocurrió un error al Guardar la Selectiva.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
Public Function GetSelectiva(CveSelectiva As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Gral_SelectivasGet")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveSelectiva", SqlDbType.Int).Value = CveSelectiva
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch Ex1 As SqlException
Me.OnError("Ocurrió un error al obtener las selectivas.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
Catch ex As Exception
OnError("Ocurrió un error al obtener las selectivas.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
Public Function RemoveSelectiva(CveSelectiva As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Gral_SelectivasRemove")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveSelectiva", SqlDbType.Int).Value = CveSelectiva
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch Ex1 As SqlException
Me.OnError("Ocurrió un error al eliminar las selectivas.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
Catch ex As Exception
OnError("Ocurrió un error al eliminar las selectivas.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
Public Function GetPSSelectiva(CveSelectiva As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Gral_SelectivasPSGet")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveSelectiva", SqlDbType.Int).Value = CveSelectiva
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch Ex1 As SqlException
Me.OnError("Ocurrió un error al obtener las selectivas.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
Catch ex As Exception
OnError("Ocurrió un error al obtener las selectivas.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
#Region "IMPUESTOS LOCALES"
Public Function GetPSImpuestosLocales(CvePS As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False

View File

@@ -126,7 +126,7 @@ Public Class SIGFacturacion : Implements IHttpHandler, IRequiresSessionState
If DTClientes IsNot Nothing Then
'QUITAR CLIENTES QUE NO DEBEN DE ESTAR
DTClientes = DTClientes.FiltraParametros("CveCliente NOT IN (265989,265991,265994,266010,266011,266013) ")
DTClientes = DTClientes.FiltraParametros("CveCliente NOT IN (1285420,1285423,1285424) ")
For Each RowCliente As DataRow In DTClientes.Rows
Dim CveCliente As Integer = RowCliente("CveCliente").ToString().ToEntero()
@@ -276,7 +276,7 @@ Public Class SIGFacturacion : Implements IHttpHandler, IRequiresSessionState
ObjFactura.Serie = Serie
ObjFactura.Folio = Folio.ToEntero()
ObjFactura.TipoMensajeRespuesta = TipoMensajeRespuesta.TextoLimpio
ObjFactura.Version = "3.3"
ObjFactura.Version = "4.0"
ObjFactura.FolioFiscal = ""
ObjFactura.CveUsuario = UsuarioActual.CveUsuario
ObjFactura.CveEmpresa = UsuarioActual.CveEmpresa

View File

@@ -703,11 +703,11 @@
total = total * TC;
}
debugger
debugger;
if ($("#" + Chk.id).is(":checked")) {
$('#' + Obj).attr('disabled', false);
if (ToDouble($get('TxtImporte').value) != total) {
if ((ToDouble($get('TxtImporte').value) + saldo) > total) {
$('#' + Obj).val(saldo - (ToDouble($get('TxtImporte').value) + saldo - total));
$get('TxtImporte').value = (total / TC).toFixed(2)

View File

@@ -1181,7 +1181,7 @@ Partial Class Bancos_PopIECompras
e.Row.FCTextBox("TxtSaldoDeudor").Attributes.Add("onKeyUp", "AjustaTextboxDeudores();")
e.Row.FCTextBox("LbTipoMoneda").Text = If(e.Row.DataKey("CveMoneda").ToString.ToEntero = 1, "USD", " MXN")
Dim rv As RangeValidator = CType(e.Row.FindControl("RVSaldoDeudor"), RangeValidator)
'Dim rv As RangeValidator = CType(e.Row.FindControl("RVSaldoDeudor"), RangeValidator)
End If
End Sub
#End Region
@@ -1456,12 +1456,13 @@ Partial Class Bancos_PopIECompras
End If
If MsgError = "" Then
Dim tc As Decimal = If(rw.DataKey("CveMoneda").ToEntero = 1, 1, TxtTipoCambio.Text.Trim.ToDecimal)
Dim VentaActual As New Venta(UsuarioActual) With {.CveVenta = rw.DataKey("CveVenta").ToEntero, .ClienteNombre = NombreCliente, .SerieFolio = rw.DataKey("SerieFolio"), .CveCliente = rw.DataKey("CveCliente").ToEntero, .IVA = rw.DataKey("IVA").ToDecimal, .IEPS = rw.DataKey("IEPS").ToDecimal, .RetIVA = rw.DataKey("RetIVA").ToDecimal, .RetISR = rw.DataKey("RetISR").ToDecimal, .Total = rw.DataKey("Total").ToDecimal, .PorcentajeIVA = rw.DataKey("PorcentajeIVA").ToDecimal, .CveSubProyecto = rw.DataKey("CveSubProyecto").ToEntero, .CveMoneda = rw.DataKey("CveMoneda").ToEntero, .TC = rw.DataKey("TipoCambio").ToDecimal}
Dim PagoVenta As New VentaPago
PagoVenta.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero
PagoVenta.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal
PagoVenta.ImportePagoVenta = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal
PagoVenta.TCPago = rw.DataKey("TipoCambio").ToDecimal
PagoVenta.TCPago = tc
PagoVenta.CveCompraRelacionada = CompraActual.CveCompra
PagoVenta.TipoPago = "Venta"
If AplicaPrePolizaPagoVenta(VentaActual, PagoVenta, CvePrePoliza, ObjMov) Then

View File

@@ -724,19 +724,33 @@ Partial Class Compras_Proveedores
Dim ObjeFacturas As New ClsCompras
If ObjeFacturas.GetFacturas(CveFactura, "-1", NowADS().AddYears(-2), NowADS(), "-1", "-1", -1, -1, -1, -1, "-1", UsuarioActual.CveEmpresa) Then
Dim XMLDoc As New XmlDocument
Dim SXML As String
Dim dr As DataRow = ObjeFacturas.DtResultados.Rows(0)
Dim Archivo As String = String.Format("{0}Compras\{1}\{2}", UsuarioActual.Empresa.Ruta, dr("RFCDe"), dr("XML"))
Try
Dim dr As DataRow = ObjeFacturas.DtResultados.Rows(0)
Dim SXML As String = File.ReadAllText(UsuarioActual.Empresa.Ruta & "Compras\" & dr("RFCDe").ToString & "\" & dr("XML").ToString)
SXML = File.ReadAllText(Archivo).Replace("<br>", "").Replace("<", "").Replace("o;?", "").Replace(ChrW(&HFEFF), "")
'SXML = SXML.TrimStart(vbCr, vbLf, vbNullChar)
'SXML = SXML.TrimEnd(vbCr, vbLf, vbNullChar)
SXML = SXML.Trim(New Char() {""c})
SXML = SXML.Replace("o;?", "")
XMLDoc.LoadXml(SXML)
Dim Prefijo As String = If(XMLDoc.DocumentElement.Prefix = "", "cfd", XMLDoc.DocumentElement.Prefix)
Catch ex As Exception
Try
Dim oReader As New StreamReader(Archivo, Encoding.GetEncoding("ISO-8859-1"))
XMLDoc.Load(oReader)
oReader.Dispose()
Catch ex2 As Exception
GuardaLog("Error al intentar leer el XML del SAT. Error:" & ex2.ToString())
End Try
End Try
If XMLDoc.InnerXml = "" Then
Alert("No se pudo procesar el archivo xml.", TipoMensaje.MsgError)
Return 0
End If
Dim Prefijo As String = If(XMLDoc.DocumentElement.Prefix = "", "cfd", XMLDoc.DocumentElement.Prefix)
Dim cfdVer As String = "http://www.sat.gob.mx/cfd/3"
Dim namespaces As New XmlNamespaceManager(XMLDoc.NameTable)
@@ -756,55 +770,51 @@ Partial Class Compras_Proveedores
'If Prefijo.ToLower <> "cfdi" Then cfdVer = "http://www.sat.gob.mx/cfd/2"
namespaces.AddNamespace(Prefijo, cfdVer)
' XMLDoc.LoadXml(File.ReadAllText(Archivo).Replace("&lt;br&gt;", "").Replace("&lt;", "").Replace("o;?", "").Replace(ChrW(&HFEFF), ""))
Dim node As XmlNode
node = XMLDoc.SelectSingleNode(String.Format("//{0}:Emisor", Prefijo), namespaces)
If node IsNot Nothing Then
TxtRFC.Text = ValorXml(node, "rfc")
If node IsNot Nothing Then
TxtRFC.Text = ValorXml(node, "rfc")
If Version = "3.3" Or Version = "4.0" Then
TxtRazonSocial.Text = HttpUtility.HtmlDecode(ValorXml(node, "Nombre"))
TxtNombreComercial.Text = HttpUtility.HtmlDecode(ValorXml(node, "Nombre"))
ChkEstado.Checked = True
If Version = "3.3" Or Version = "4.0" Then
TxtRazonSocial.Text = HttpUtility.HtmlDecode(ValorXml(node, "Nombre"))
TxtNombreComercial.Text = HttpUtility.HtmlDecode(ValorXml(node, "Nombre"))
ChkEstado.Checked = True
Dim CodigoRegimenFiscal As String = ValorXml(node, "RegimenFiscal")
Dim CodigoRegimenFiscal As String = ValorXml(node, "RegimenFiscal")
If Version = "4.0" Or CodigoRegimenFiscal.Trim.Length > 0 Then
If Version = "4.0" Or CodigoRegimenFiscal.Trim.Length > 0 Then
Dim CveRegimenFiscal As Integer = GlobalDTRegimenesFiscales(-1).FiltroPrimeroValor("CveRegimenFiscal", $" CodigoRegimenFiscal = '{ CodigoRegimenFiscal }'").ToEntero
DdlRegimenFiscal.SelectedValueExist(CveRegimenFiscal)
Dim CveRegimenFiscal As Integer = GlobalDTRegimenesFiscales(-1).FiltroPrimeroValor("CveRegimenFiscal", $" CodigoRegimenFiscal = '{ CodigoRegimenFiscal }'").ToEntero
DdlRegimenFiscal.SelectedValueExist(CveRegimenFiscal)
End If
End If
Else
TxtRazonSocial.Text = HttpUtility.HtmlDecode(ValorXml(node, "nombre"))
TxtNombreComercial.Text = HttpUtility.HtmlDecode(ValorXml(node, "nombre"))
Dim nodeDomicilio As XmlNode = XMLDoc.SelectSingleNode(String.Format("//{0}:DomicilioFiscal", Prefijo), namespaces)
TxtDireccion.Text = ValorXml(nodeDomicilio, "calle") & " " & ValorXml(nodeDomicilio, "noExterior")
ChkEstado.Checked = True
Else
TxtRazonSocial.Text = HttpUtility.HtmlDecode(ValorXml(node, "nombre"))
TxtNombreComercial.Text = HttpUtility.HtmlDecode(ValorXml(node, "nombre"))
Dim nodeDomicilio As XmlNode = XMLDoc.SelectSingleNode(String.Format("//{0}:DomicilioFiscal", Prefijo), namespaces)
TxtDireccion.Text = ValorXml(nodeDomicilio, "calle") & " " & ValorXml(nodeDomicilio, "noExterior")
ChkEstado.Checked = True
node = XMLDoc.SelectSingleNode(String.Format("//{0}:Impuestos", Prefijo), namespaces)
If node IsNot Nothing AndAlso node.ChildNodes.Count > 0 Then
'Dim nodeRetenciones As XmlNodeList = XMLDoc.SelectNodes(String.Format("//{0}:Retencion", Prefijo), namespaces)
'Dim nodeRet As XmlNode = XMLDoc.SelectSingleNode(String.Format("//{0}:Retenciones", Prefijo), namespaces)
node = XMLDoc.SelectSingleNode(String.Format("//{0}:Impuestos", Prefijo), namespaces)
If node IsNot Nothing AndAlso node.ChildNodes.Count > 0 Then
'Dim nodeRetenciones As XmlNodeList = XMLDoc.SelectNodes(String.Format("//{0}:Retencion", Prefijo), namespaces)
'Dim nodeRet As XmlNode = XMLDoc.SelectSingleNode(String.Format("//{0}:Retenciones", Prefijo), namespaces)
Dim nodeTraslados As XmlNodeList = XMLDoc.SelectNodes(String.Format("//{0}:Traslado", Prefijo), namespaces)
For Each traslado As XmlNode In nodeTraslados
If traslado.Attributes("impuesto").Value = "IVA" Then
TxtIVA.Text = traslado.Attributes("tasa").Value.ToDouble.ToString("N2")
'Retenciones
End If
Next
End If
Dim nodeTraslados As XmlNodeList = XMLDoc.SelectNodes(String.Format("//{0}:Traslado", Prefijo), namespaces)
For Each traslado As XmlNode In nodeTraslados
If traslado.Attributes("impuesto").Value = "IVA" Then
TxtIVA.Text = traslado.Attributes("tasa").Value.ToDouble.ToString("N2")
'Retenciones
End If
Next
End If
End If
Catch ex As Exception
Alert(String.Format("No se pudo cargar la información ({0})", ex.Message), TipoMensaje.MsgAdvertencia)
Return 0
End Try
End If
End If
Return 1
@@ -5847,11 +5857,8 @@ Partial Class Compras_Proveedores
Protected Sub LnkDownLoadDoc_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim Adjunto As String = GvRow.DataKey("Adjunto")
Dim stringDescargaDocumento As String = UsuarioActual.Empresa.Ruta & String.Format("Edoc\\Proveedor\{0}\{1}", CveProveedor, Adjunto)
Dim File As New FileInfo(stringDescargaDocumento)
If File.Exists Then

View File

@@ -1,4 +1,4 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="LibroMayor.aspx.vb" Inherits="Contabilidad_LibroMayor" %>
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="LibroMayor.aspx.vb" Inherits="Conta_LibroMayor" EnableEventValidation="false" %>
<asp:Content ContentPlaceHolderID="Css" runat="server">
<style>
@@ -6,111 +6,260 @@
width: 300px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-overflow: ellipsis;
}
table {
border: none !important;
}
tr {
border: none !important;
}
td {
border: none !important;
}
</style>
</asp:Content>
<asp:Content ID="Content1" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel runat="server">
<asp:UpdatePanel ID="UpAcciones" runat="server" >
<ContentTemplate>
<li>
<asp:LinkButton ID="ImgExcel" Visible="false" runat="server"><i class="fa fa-ad-excel"></i> Generar EXCEL</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="Imprimir" Visible="false" runat="server"><i class="fa fa-print"></i> Imprimir</asp:LinkButton>
<asp:LinkButton ID="ImgExcel" runat="server" Visible="true"><i class="fa fa-file-excel-o" ></i> Generar EXCEL</asp:LinkButton>
</li>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="ImgExcel" />
<asp:PostBackTrigger ControlID="Imprimir" />
</Triggers>
</asp:UpdatePanel>
<%-- <li>
<asp:LinkButton ID="Imprimir" runat="server" Visible="false"><i class="fa fa-print"></i> Imprimir</asp:LinkButton>
</li>--%>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="E" runat="Server">
Libro Mayor
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="BtnConsultar" runat="server" CssClass="btn btn-primary" Text="Consultar" Width="100px" OnClick="BtnConsultar_Click" Enabled="false"/>
<asp:Button ID="BtnConsultar" runat="server" Text="Consultar" CssClass="btn btn-default" OnClick="BtnConsultar_Click" ValidationGroup="Valida" />
<a href="javascript:;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a><%--class="expand"--%>
<asp:CheckBox ID="chkexpand" CssClass="hidden" runat="server" />
</div>
<div class="titlefiltros caption ">
<div class="row">
<label class="col-md-1" style="width: 90px; padding-right: 2px;">Fecha Inicio:</label>
<div class="col-md-2" style="width: 140px;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 80px !important; padding: 0px;">
<asp:TextBox ID="TxtFechaDel" runat="server" CssClass="form-control" Width="99%" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgCalendarioDel" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaDel" runat="server" TargetControlID="TxtFechaDel" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender ID="CalendarioDel" runat="server" TargetControlID="TxtFechaDel" PopupButtonID="ImgCalendarioDel" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="CVFechaDel" runat="server" ControlToValidate="TxtFechaDel" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFecha2Del" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaDel" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<label class="col-md-1" style="width: 80px; padding-right: 2px;">Fecha Fin:</label>
<div class="col-md-2" style="width: 140px;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 80px !important; padding: 0px;">
<asp:TextBox ID="TxtFechaAl" runat="server" CssClass="form-control" Width="99%" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgCalendarioAl" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaAl" runat="server" TargetControlID="TxtFechaAl" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender ID="CalendarioAl" runat="server" TargetControlID="TxtFechaAl" PopupButtonID="ImgCalendarioAl" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="CVFechaAl" runat="server" ControlToValidate="TxtFechaAl" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFecha2Al" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaAl" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<%-- <label class="col-md-2" style="width: 60px;">Moneda:</label>
<div class="col-md-1">
<asp:DropDownList ID="DdlMoneda" CssClass="select2me" runat="server" DataTextField="Moneda" DataValueField="CveMoneda" TabIndex="5" ClientIDMode="Static">
Cuenta:
</div>
<div class="col-md-3">
<asp:DropDownList ID="DdlCuentas" runat="server" AppendDataBoundItems="true" DataTextField="CuentaFormatoNombre" DataValueField="CveCuenta" CssClass="form-control input-sm select2me" Enabled="false">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>--%>
<asp:RequiredFieldValidator ID="RFVDdlCuentas" runat="server" InitialValue="-1" ControlToValidate="DdlCuentas" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cuenta''</b> es necesario, por favor ingréselo." ValidationGroup="GrpConsulta"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="CERFVDdlCuentas" runat="server" HighlightCssClass="vco" TargetControlID="RFVDdlCuentas" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-1">
Fecha Inicio:
</div>
<div class="col-md-1" style="min-width: 115px">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 100px !important; padding: 0px;">
<asp:TextBox Width="80px" ID="txtFechaI" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendario" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="txtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario" TargetControlID="txtFechaI" PopupButtonID="ImgCalendario" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="rfvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="GrpConsulta"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="cvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpConsulta"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoFfvFI" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="vcoCvFI" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-1">
Fecha Fin:
</div>
<div class="col-md-1" style="min-width: 115px">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 100% !important; padding: 0px;">
<asp:TextBox Width="80px" ID="txtFechaF" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendarioF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="txtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario2" TargetControlID="txtFechaF" PopupButtonID="imgCalendarioF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="rfvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="GrpConsulta"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="cvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpConsulta"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoRfvFF" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</div>
<div class="portlet-body" <%= IIf(chkexpand.Checked = True, "", "style=""display:none;""")%>>
<div class="row">
<div class="col-md-1 ">
Tipo Movto
</div>
<div class="col-md-3 ">
<asp:DropDownList ID="DdlOpcionCuentas" runat="server" DataTextField="Cuenta" DataValueField="CveCuenta" TabIndex="4" CssClass="form-control input-sm select2me" Width="100%">
<asp:ListItem Text="Todos" Value="-1"></asp:ListItem>
<asp:ListItem Text="Con movimientos" Value="1"></asp:ListItem>
<asp:ListItem Text="Saldo actual no igual a cero" Value="2"></asp:ListItem>
<asp:ListItem Text="Con movimientos y saldo no igual a cero" Value="3"></asp:ListItem>
<asp:ListItem Text="Con movimientos o saldo no igual a cero" Value="4"></asp:ListItem>
</asp:DropDownList>
</div>
<div class="col-md-1 " id="tdTipoReporte" visible="false" runat="server">
Tipo
</div>
<div class="col-md-2" id="tdTipoReporte2" visible="false" runat="server">
<asp:DropDownList ID="DdlTipoReporte" CssClass="form-control input-sm select2me" runat="server" Width="100%">
<asp:ListItem Text="Contable" Value="1"></asp:ListItem>
<asp:ListItem Text="Contable y Complementario" Value="3"></asp:ListItem>
<asp:ListItem Text="Complementario" Value="2"></asp:ListItem>
</asp:DropDownList>
</div>
<div class="col-md-1" id="divProyecto" runat="server">
<asp:Label ID="LblProyecto" runat="server">Proyecto:</asp:Label>
</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlProyecto" CssClass=" form-control input-sm select2me" runat="server" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="Proyecto" DataValueField="CveProyecto" Width="95%">
</asp:DropDownList>
</div>
<asp:Label runat="server" ID="LblSubProyecto" CssClass="col-md-1">SubProyecto:</asp:Label>
<div class="col-md-2">
<asp:DropDownList ID="DdlSubproyecto" CssClass="form-control input-sm select2me" runat="server" DataTextField="SubProyecto" DataValueField="CveSubProyecto" Width="95%" AutoPostBack="True">
</asp:DropDownList>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<%-- <br />
<div class="text-right">Buscar :
<input type="text" id="Buscar" style="margin-right: 30px;" />
</div>--%>
<asp:UpdatePanel ID="UpDatos" UpdateMode="Conditional" runat="server" style="margin-left: 15px; margin-right: 15px;">
</asp:UpdatePanel>
<div class="row" style="margin-right: 10px; margin-top: 8px;" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:UpdatePanel ID="UpDatos" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:GridView ID="GvDatos" CssClass="table table-striped table-hover Widthall" GridLines="None" AutoGenerateColumns="False" runat="server">
<div style='color:red'></div>
<asp:GridView ID="GvDatos" runat="server"
CssClass="table table-striped table-advance table-hover " AutoGenerateColumns="False"
EmptyDataText="No se encontrarios movimientos."
DataKeyNames="" OnRowDataBound="GvDatos_RowDataBound">
<Columns>
<asp:BoundField HeaderText="Fecha" DataField="Fecha" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" />
<asp:BoundField HeaderText="Tipo" DataField="TipoPol" />
<asp:BoundField HeaderText="Poliza" DataField="Folio" />
<asp:BoundField HeaderText="Descripción" DataField="Concepto" />
<asp:BoundField HeaderText="Cargos" DataField="Cargos" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:#,##0.00}" />
<asp:BoundField HeaderText="Abonos" DataField="Abonos" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:#,##0.00}" />
<asp:BoundField HeaderText="Saldo" DataField="Saldo" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:#,##0.00}" />
<asp:TemplateField ControlStyle-CssClass="Widthall">
<HeaderTemplate>
<table width="100%" style="border: none">
<tr>
<td colspan="3"><font size="2">Cuenta</font></td>
<td colspan="1"><font size="2">Nombre</font></td>
<td colspan="4"></td>
<td><font size="2">Saldo Inicial</font></td>
</tr>
<tr>
<td width="60px" align="center">Fecha</td>
<td width="60px" align="center">Tipo</td>
<td width="60px" align="center">Número</td>
<td width="300px" align="left">Concepto</td>
<td width="100px" align="center">Referencia</td>
<td width="100px" align="center">Referencia Movto</td>
<td width="100px" align="center"><asp:Label ID="LblSubProyecto" runat="server"></asp:Label> </td>
<td width="100px" align="center">Cargos</td>
<td width="100px" align="center">Abonos</td>
<td width="100px" align="center">Saldo</td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<table width="100%" style="border: none">
<tr runat="server" id="tr1">
<td colspan="3" align="left" width="180px">
<asp:Label ID="LbCuenta" runat="server" Text='<%# Eval("Codigo")%>'></asp:Label>
</td>
<td colspan="1" align="left" width="300px">
<asp:Label ID="LbNombre" runat="server" Text='<%# Eval("Nombre")%>'></asp:Label>
</td>
<td colspan="2" width="200px"></td>
<td style="font-weight: normal;" align="right" width="100px">Saldo Inicial:
</td>
<td style="font-weight: normal;" align="right" width="100px">
<asp:Label ID="LbSaldoInicial" runat="server" Text='<%# Eval("SaldoInicial", "{0:N2}")%>'></asp:Label>
</td>
</tr>
<tr runat="server" id="tr2">
<td width="60px" style="border: 0px;" align="center">
<asp:Literal ID="LbFecha" runat="server" Text='<%# Eval("Fecha", "{0:d}")%>'></asp:Literal>
</td>
<td width="60px" style="border: 0px;" align="center">
<asp:Literal ID="LbTipo" runat="server" Text='<%# Eval("TipoPoliza")%>'></asp:Literal>
</td>
<td width="60px" style="border: 0px;" align="center">
<asp:HyperLink ID="HLPoliza" runat="server" Text='<%# Eval("Folio")%>' CssClass="Texto" Target="_blank"></asp:HyperLink>
</td>
<td width="300px" align="left">
<div class="truncate" style="width: 300px;">
<asp:Label ID="LbConcepto" runat="server" CssClass="truncate" Text='<%# Eval("Concepto")%>' title='<%# Eval("Concepto")%>'></asp:Label>
</div>
</td>
<td width="100px">
<asp:Label ID="LbReferencia" runat="server" Text='<%# Eval("Referencia")%>'></asp:Label>
</td>
<td width="60px" style="border: 0px;" align="center">
<asp:Literal ID="LtlRefMovto" runat="server" Text='<%# Eval("ReferenciaAdmin")%>'></asp:Literal>
</td>
<td width="100px">
<asp:Label ID="LblSubProyecto" runat="server" Text='<%# Eval("SubProyecto")%>'></asp:Label>
</td>
<td width="100px" align="right">
<asp:Label ID="LbCargos" runat="server"></asp:Label>
</td>
<td width="100px" align="right">
<asp:Label ID="LbAbonos" runat="server"></asp:Label>
</td>
<td width="100px" align="right">
<asp:Label ID="LbSaldo" runat="server"></asp:Label>
</td>
</tr>
</table>
</ItemTemplate>
<ItemStyle />
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>
</asp:Content>

View File

@@ -2,22 +2,40 @@
Option Strict On
Imports System.Data
Imports ADServerControl.DragableList
Imports System.IO
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Imports ClosedXML.Excel
Imports System.Drawing
Partial Class Contabilidad_LibroMayor
Partial Class Conta_LibroMayor
Inherits ClsPaginas
#Region "PROPIEDADES"
Private Property DtDatos As DataTable
Get
DtDatos = DirectCast(ViewState("DtDatos"), DataTable)
If ViewState("DtDatos") Is Nothing Then
ViewState("DtDatos") = New DataTable
End If
Return DirectCast(ViewState("DtDatos"), DataTable)
End Get
Set(ByVal value As DataTable)
ViewState("DtDatos") = value
End Set
End Property
Private Property DtTotales As DataTable
Get
DtTotales = DirectCast(ViewState("DtTotales"), DataTable)
End Get
Set(ByVal value As DataTable)
ViewState("DtTotales") = value
End Set
End Property
Private Property FechaInicio As Date
Get
FechaInicio = ViewState("FechaInicio").ToString.ToDate
@@ -34,147 +52,312 @@ Partial Class Contabilidad_LibroMayor
ViewState("FechaFin") = value
End Set
End Property
Private Property TotalPadre As Boolean
Get
TotalPadre = CBool(ViewState("TotalPadre"))
End Get
Set(value As Boolean)
ViewState("TotalPadre") = value
End Set
End Property
Private Property DTCuentas As DataTable
Get
Return CType(ViewState("DTCuentas"), DataTable)
End Get
Set(value As DataTable)
ViewState("DTCuentas") = value
End Set
End Property
Private Property TipoReporte As String
Get
TipoReporte = ViewState("TP").ToString
End Get
Set(value As String)
ViewState("TP") = value
End Set
End Property
Private Property Cuenta As String
Get
Return ViewState("Cuenta").ToString
End Get
Set(value As String)
ViewState("Cuenta") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
InicializaValores()
If UsuarioActual.Empresa.TipoContabilidad = 2 Then Response.Redirect($"/Contabilidad/LibroMayorCI.aspx")
Dim ErrorParametros As Boolean = True
CargaTipoCuentas()
txtFechaI.Text = NowADS().FirstDayOfMonth.ToShortDateString
txtFechaF.Text = NowADS().LastDayOfMonth.ToShortDateString
If Request("CveCuenta") IsNot Nothing AndAlso IsNumeric(Request("CveCuenta")) AndAlso Request("CveCuenta").ToEntero > 0 Then
If Request("FF") IsNot Nothing AndAlso Request("FF").ToString.Length = 10 AndAlso Request("FF").ToDate > "01/01/1000".ToDate Then
FechaFin = Request("FF").ToDate
txtFechaF.Text = FechaFin.ToShortDateString
DdlCuentas.SelectedValueExist(Request("CveCuenta").ToEntero)
If Request("FI") IsNot Nothing AndAlso Request("FI").ToString.Length = 10 AndAlso Request("FI").ToDate > "01/01/1000".ToDate Then
FechaInicio = Request("FI").ToDate
txtFechaI.Text = FechaInicio.ToShortDateString
Else
FechaInicio = DateSerial(Year(FechaFin), Month(FechaFin), 1)
txtFechaF.Text = FechaInicio.ToShortDateString
End If
If Request("CveProyecto") IsNot Nothing AndAlso IsNumeric(Request("CveProyecto")) Then
DdlProyecto.SelectedValueExist(Request("CveProyecto"))
DdlProyecto_SelectedIndexChanged(Nothing, Nothing)
End If
If Request("CveSubProyecto") IsNot Nothing AndAlso IsNumeric(Request("CveSubProyecto")) Then
DdlSubproyecto.SelectedValueExist(Request("CveSubProyecto"))
End If
ErrorParametros = False
If Request("TP") IsNot Nothing AndAlso IsNumeric(Request("TP")) AndAlso Request("TP").ToEntero > 0 Then
TipoReporte = Request("TP").ToString
End If
If UsuarioActual.Empresa.UsaAC Then
BtnConsultar.Enabled = True
Else
If UsuarioActual.Empresa.TipoContabilidad = 1 Then
BtnConsultar.Enabled = True
Else
Alert("La empresa no usa Armonización Contable", TipoMensaje.MsgError)
End If
End If
If Not ErrorParametros Then
TotalPadre = True
TipoReporte = "1"
CargaDatos()
End If
End If
End Sub
Private Sub InicializaValores()
TxtFechaDel.Text = $"01/01/{NowADS().Year}"
TxtFechaAl.Text = NowADS().ToShortDateString
'DdlMoneda.DataSource = GlobalDTMonedas
'DdlMoneda.DataBind()
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
CargaDatos()
If DdlCuentas.SelectedValue.ToEntero = -2 Then
Alert("El campo Cuenta es obligatorio.", TipoMensaje.MsgError)
Else
FechaInicio = If(txtFechaI.Text = "" Or txtFechaI.Text = "__/__/____", NowADS(), txtFechaI.Text.ToDate)
FechaFin = If(txtFechaF.Text = "" Or txtFechaF.Text = "__/__/____", NowADS(), txtFechaF.Text.ToDate)
CargaDatos()
End If
End Sub
#Region "C A R G A - D A T O S"
Private Sub CargaDatos()
FechaInicio = If(IsDate(TxtFechaDel.Text), TxtFechaDel.Text.ToDate, MinFecha)
FechaFin = If(IsDate(TxtFechaAl.Text), TxtFechaAl.Text.ToDate, MaxFecha)
Private Sub CargaTipoCuentas()
Dim ObjTipoCuenta As New ClsContabilidad
DdlCuentas.Enabled = True
If ObjTipoCuenta.GetCuentas(-1, "-1", -1, UsuarioActual.CveEmpresa) Then
DTCuentas = ObjTipoCuenta.DtResultados
DdlCuentas.DataSource = ObjTipoCuenta.DtResultados.FiltraParametros("Codigo NOT IN ('_ACTIVO', '_PASIVO', '_CAPITAL', '_CUADRE', '_ESTADISTICAS', '_ORDEN', '_RACREEDOR', '_RDEUDOR', '_UTILIDAD')")
If UsuarioActual.Empresa.TipoContabilidad = 1 Then
Dim ObjConta As New ClsContabilidad
If ObjConta.GetLibroMayorSIG(-1, FechaInicio, FechaFin, 1, UsuarioActual.CveEmpresa) Then
DtDatos = ObjConta.DtResultados
Else
DtDatos = Nothing
End If
ObjConta.Dispose()
Else
Dim ObjConta As New ClsContPAQi(UsuarioActual.Empresa)
If ObjConta.GetLibroMayor(1, FechaInicio, FechaFin, 1) Then
DtDatos = ObjConta.DtResultados
Else
DtDatos = Nothing
End If
ObjConta.Dispose()
End If
ObjTipoCuenta.Dispose()
DdlCuentas.DataBind()
If DtDatos IsNot Nothing Then
ImgExcel.Visible = True
Imprimir.Visible = True
CargaGrid()
Else
ImgExcel.Visible = False
Imprimir.Visible = False
End If
CargarCentrosDeCosto(DdlProyecto, DdlSubproyecto, LblProyecto, LblSubProyecto, divProyecto:=divProyecto)
End Sub
Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged
CargarSubProyecto(DdlSubproyecto, DdlProyecto.SelectedValue, "Todos")
End Sub
Private Sub CargaDatos(Optional RenderGv As Boolean = True)
Dim CveProyecto As Integer = DdlProyecto.SelectedValue.ToEntero
Dim CveSubProyecto As Integer = DdlSubproyecto.SelectedValue.ToEntero
TipoReporte = DdlTipoReporte.SelectedValue.ToString
Cuenta = DdlCuentas.SelectedItem.ToString
Dim ObjConta As New ClsContabilidad
If ObjConta.GetLibroMayor2(DdlCuentas.SelectedValue.ToEntero, FechaInicio, FechaFin, -1, CveProyecto, CveSubProyecto, UsuarioActual.CveEmpresa, TipoReporte, DdlOpcionCuentas.SelectedValue.ToEntero) Then
DtDatos = ObjConta.DtResultados
DtTotales = DtDatos.Clone
If RenderGv Then
CargaGrid()
End If
Else
DtDatos = Nothing
End If
ObjConta.Dispose()
End Sub
#End Region
Private Sub InsertaTotales()
Dim i As Integer = 0
Dim Aumento As Integer = 0
Dim Row As DataRow
Dim Row2 As DataRow
'Llena DtTotales
For Each dr As DataRow In DtDatos.Rows
If dr("Concepto").ToString = "" Then
Row = DtTotales.NewRow
Row("CveCuenta") = -1
Row("CargosMovto") = If("1" = "1", dr("Cargos"), dr("CargosME"))
Row("AbonosMovto") = If("1" = "1", dr("Abonos"), dr("AbonosME"))
Row("Saldo") = dr("SaldoActual")
Row("CtaMayor") = dr("CtaMayor")
Row("Concepto") = String.Format("Total {0}:", dr("Nombre"))
Row("Nombre") = dr("Nombre")
DtTotales.Rows.Add(Row)
Row("Clasificacion") = i
End If
i += 1
Next
'Inserta Totales en DtDatos
For Each dr As DataRow In DtTotales.Rows
i = 0
If dr("CtaMayor").ToString = "1" Then
DtDatos.ImportRow(dr)
End If
If dr("CtaMayor").ToString = "2" Then
For index As Integer = dr("Clasificacion").ToString.ToEntero + Aumento To DtDatos.Rows.Count
If DtDatos.Rows(index)("Nombre").ToString <> dr("Nombre").ToString Then
i = index
Exit For
End If
Next
Row2 = DtDatos.NewRow
Row2.ItemArray = dr.ItemArray
DtDatos.Rows.InsertAt(Row2, i + Aumento)
Aumento += 1
End If
Next
End Sub
#Region "G R I D - GV DATOS"
Private Sub CargaGrid()
GvDatos.DataSource = DtDatos
'GvDatos.Dispose()
GvDatos.DataBind()
UpDatos.Update()
End Sub
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.Header Then
e.Row.FCLabel("LblSubProyecto").Text = LblSubProyecto.Text
End If
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("Concepto") = "" Then
e.Row.ControlStyle.Font.Bold = True
e.Row.ControlStyle.Height = 35
'0 Fecha
'1 TipoPol
'2 Folio
'3 Concepto
'4 Cargos
'5 Abonos
'6 Saldo
'Cuando es Titulo
If e.Row.DBCampo("SaldoActual") = "" Then
CType(e.Row.FindControl("tr2"), HtmlTableRow).Visible = False
'CABECERA
If e.Row.DBCampo("TipoRenglon") = "1" Then
e.Row.Font.Bold = True
e.Row.Cells(0).Text = ""
e.Row.Cells(1).Text = ""
e.Row.Cells(2).Text = ""
e.Row.Cells(3).Text = e.Row.DBCampo("Nombre")
e.Row.Cells(4).Text = ""
e.Row.Cells(5).Text = "Saldo inicial:"
e.Row.Cells(6).Text = e.Row.DBCampo("SaldoInicial").FormatoNumero
e.Row.CssClass = "Totales"
End If
'DETALLE
If e.Row.DBCampo("TipoRenglon") = "2" Then
'Cuando Es Total
Else
CType(e.Row.FindControl("tr1"), HtmlTableRow).Visible = False
'Anterior para TotalPadre
'If e.Row.DBCampo("CtaMayor").ToString = "2" And (e.Row.DBCampo("Nivel3").ToString <> "" Xor e.Row.DBCampo("Orden").ToString.Length = 18) Then
' e.Row.FCLabel("LbReferencia").Text = "Total:"
'Else
' e.Row.FCLabel("LbConcepto").Text = String.Format("Total {0}:", e.Row.DBCampo("Nombre").ToString)
'End If
If TotalPadre Then
CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(3).Width = "1px"
'CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells.Remove(CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(3))
CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(3).Align = "Right"
CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(3).Width = "400px"
If e.Row.RowIndex + 1 = DtDatos.Rows.Count Then
CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(4).Attributes.Add("style", "border-top: 1px solid black;")
CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(5).Attributes.Add("style", "border-top: 1px solid black;")
CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(6).Attributes.Add("style", "border-top: 1px solid black;")
End If
e.Row.FCLabel("LbReferencia").Text = String.Format("Total {0}:", e.Row.DBCampo("Nombre").ToString)
Else
TotalPadre = True
e.Row.FCLabel("LbReferencia").Font.Bold = False
e.Row.FCLabel("LbReferencia").Text = "Total:"
CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(4).Align = "Right"
End If
'e.Row.FCLabel("LbReferencia").Text = String.Format("Total {0}:", If(e.Row.DBCampo("CtaMayor").ToString = "2", "", e.Row.DBCampo("Nombre").ToString))
e.Row.FCLabel("LbCargos").Text = e.Row.DBCampo("Cargos").ToString.FormatoNumero(If("1" = "1", 2, 4))
e.Row.FCLabel("LbAbonos").Text = e.Row.DBCampo("Abonos").ToString.FormatoNumero(If("1" = "1", 2, 4))
e.Row.FCLabel("LbSaldo").Text = e.Row.DBCampo("SaldoActual").ToString.FormatoNumero(If("1" = "1", 2, 4))
End If
Else
TotalPadre = False
e.Row.ControlStyle.Font.Bold = False
CType(e.Row.FindControl("tr1"), HtmlTableRow).Visible = False
e.Row.FCHyperLink("HLPoliza").NavigateUrl = String.Format("/Contabilidad/RegPrePolizas.aspx?CvePrePoliza={0}", e.Row.DBCampo("CvePoliza"))
If e.Row.DBCampo("CargosMovto").ToDouble <> 0 Then e.Row.FCLabel("LbCargos").Text = e.Row.DBCampo("CargosMovto").ToString.FormatoNumero(If("1" = "1", 2, 4))
If e.Row.DBCampo("AbonosMovto").ToDouble <> 0 Then e.Row.FCLabel("LbAbonos").Text = e.Row.DBCampo("AbonosMovto").ToString.FormatoNumero(If("1" = "1", 2, 4))
If e.Row.DBCampo("Saldo").ToDouble <> 0 Then e.Row.FCLabel("LbSaldo").Text = e.Row.DBCampo("Saldo").ToString.FormatoNumero(If("1" = "1", 2, 4))
End If
'SUBTOTAL
If e.Row.DBCampo("TipoRenglon") = "3" Then
e.Row.Font.Bold = True
e.Row.Cells(1).Text = ""
e.Row.Cells(2).Text = ""
e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Right
e.Row.Cells(3).Text = "SubTotal:"
e.Row.Cells(6).Text = ""
e.Row.CssClass = "SubTotales"
'COLOREA NEGATIVOS
If e.Row.FCLabel("LbCargos").Text.ToDouble < 0 Then
e.Row.FCLabel("LbCargos").ForeColor = Drawing.Color.Red
Else
e.Row.FCLabel("LbCargos").ForeColor = Drawing.Color.Black
End If
'TOTAL
If e.Row.DBCampo("TipoRenglon") = "4" Then
e.Row.Font.Bold = True
e.Row.Cells(0).Text = ""
e.Row.Cells(1).Text = ""
e.Row.Cells(2).Text = ""
e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Right
e.Row.Cells(3).Text = $"Total ({e.Row.DBCampo("Nombre")}):"
e.Row.Cells(6).Text = ""
e.Row.CssClass = "Totales"
If e.Row.FCLabel("LbAbonos").Text.ToDouble < 0 Then
e.Row.FCLabel("LbAbonos").ForeColor = Drawing.Color.Red
Else
e.Row.FCLabel("LbAbonos").ForeColor = Drawing.Color.Black
End If
If e.Row.FCLabel("LbSaldo").Text.ToDouble < 0 Then
e.Row.FCLabel("LbSaldo").ForeColor = Drawing.Color.Red
Else
e.Row.FCLabel("LbSaldo").ForeColor = Drawing.Color.Black
End If
If e.Row.FCLabel("LbSaldoInicial").Text.ToDouble < 0 Then
e.Row.FCLabel("LbSaldoInicial").ForeColor = Drawing.Color.Red
Else
e.Row.FCLabel("LbSaldoInicial").ForeColor = Drawing.Color.Black
End If
End If
@@ -182,37 +365,382 @@ Partial Class Contabilidad_LibroMayor
#End Region
Protected Sub Imprimir_click(sender As Object, e As EventArgs)
If DdlCuentas.SelectedValue.ToEntero = -1 Then
Alert("El campo Cuenta es obligatorio.", TipoMensaje.MsgError)
Else
FechaInicio = If(txtFechaI.Text = "" Or txtFechaI.Text = "__/__/____", NowADS(), txtFechaI.Text.ToDate)
FechaFin = If(txtFechaF.Text = "" Or txtFechaF.Text = "__/__/____", NowADS(), txtFechaF.Text.ToDate)
#Region " IMPRIMIR "
#End Region
Protected Sub Imprimir_click(sender As Object, e As EventArgs) Handles Imprimir.Click
FechaInicio = If(TxtFechaDel.Text = "" Or TxtFechaDel.Text = "__/__/____", NowADS(), TxtFechaDel.Text.ToDate)
FechaFin = If(TxtFechaAl.Text = "" Or TxtFechaAl.Text = "__/__/____", NowADS(), TxtFechaAl.Text.ToDate)
DtDatos = DtDatos
ImprimirReporte()
DtDatos = DtDatos
ImprimirReporte()
End If
End Sub
Protected Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click
FechaInicio = If(TxtFechaDel.Text = "" Or TxtFechaDel.Text = "__/__/____", NowADS(), TxtFechaDel.Text.ToDate)
FechaFin = If(TxtFechaAl.Text = "" Or TxtFechaAl.Text = "__/__/____", NowADS(), TxtFechaAl.Text.ToDate)
DtDatos = DtDatos
ImprimirReporte("EXCEL")
ImprimirReporte("Excel")
End Sub
Private Sub ImprimirReporte(Optional Formato As String = "PDF")
Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png")
'Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim lista = New List(Of CrystalParametro)
lista.Add(New CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa))
lista.Add(New CrystalParametro("FechaInicio", FechaInicio.ToString("dd/MM/yyyy")))
lista.Add(New CrystalParametro("FechaFin", FechaFin.ToString("dd/MM/yyyy")))
lista.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual.Nombre))
lista.Add(New CrystalParametro("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", "")))
Dim WBLibroMayor = New ClosedXML.Excel.XLWorkbook
Dim TipoReporte = DdlTipoReporte.SelectedValue.ToEntero
FechaInicio = If(txtFechaI.Text = "" Or txtFechaI.Text = "__/__/____", NowADS(), txtFechaI.Text.ToDate)
FechaFin = If(txtFechaF.Text = "" Or txtFechaF.Text = "__/__/____", NowADS(), txtFechaF.Text.ToDate)
DtDatos.Rows.Clear()
CargaDatos(False)
If DtDatos.Rows.Count > 0 Then
Dim sp As String = If(DdlSubproyecto.SelectedValue.ToEntero > 0, DdlSubproyecto.SelectedItem.Text, "")
WBLibroMayor.AddWorksheet(WSDocumento(sp, DtDatos))
WBLibroMayor.Worksheet(1).Name = $"LibroMayor"
End If
Dim msB = New MemoryStream()
WBLibroMayor.SaveAs(msB)
Dim BB As Byte() = msB.ToArray
msB.Dispose()
Response.Clear()
Response.Buffer = True
Response.AddHeader("content-disposition", "attachment; filename=Balanza_" & Now.ToString("yyyyMMddhhmmss") & ".xlsx")
Response.ContentType = "application/vnd.ms-excel"
Response.BinaryWrite(BB)
Response.End()
ImprimirbytesPDF(ImprimirPDFCrystal(Server.MapPath("~/Empresas/Grales/Formatos/LibroMayor.rpt"), DtDatos, lista, "LibroMayor", Formato), "LibroMayor", Formato)
End Sub
Function WSDocumento(SubProyecto As String, DtDatos As DataTable) As IXLWorksheet
Dim WBAnexoSalvar = New ClosedXML.Excel.XLWorkbook
Dim WBReporte = New ClosedXML.Excel.XLWorkbook()
WBReporte.Worksheets.Add("1")
Dim WSReporte = WBReporte.Worksheet(1)
Dim RutaLogo As String = String.Format("{0}Logo.png", UsuarioActual.Empresa.Ruta)
If File.Exists(RutaLogo) Then
Dim imagePath As String = RutaLogo
Dim img As Bitmap = New Bitmap(imagePath)
Dim picture = WSReporte.AddPicture(img).MoveTo(WSReporte.Cell("A1"))
picture.Scale(0.5)
End If
Dim Tamaniofuente As Integer = 13
Dim Range = WSReporte.Range("A1:D1")
WSReporte.Style.Font.FontSize = 10
WSReporte.Style.Font.FontName = "Arial Narrow"
WSReporte.Style.Alignment.WrapText = True
Range.Merge().Style.Font.SetBold().Font.FontSize = Tamaniofuente
WSReporte.Range("A1:J1").Merge().Style.Font.SetBold().Font.FontSize = Tamaniofuente
WSReporte.Range("A2:J2").Merge().Style.Font.SetBold().Font.FontSize = Tamaniofuente
WSReporte.Range("A3:J3").Merge().Style.Font.SetBold().Font.FontSize = Tamaniofuente
WSReporte.Range("A4:J4").Merge().Style.Font.SetBold().Font.FontSize = Tamaniofuente
WSReporte.Range("A5:J5").Merge().Style.Font.SetBold().Font.FontSize = Tamaniofuente
WSReporte.Range("A1:A5").Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center)
WSReporte.Column(1).Width = 15
WSReporte.Column(2).Width = 15
WSReporte.Column(3).Width = 14
WSReporte.Column(4).Width = 70
WSReporte.Column(5).Width = 35
WSReporte.Column(6).Width = 20
WSReporte.Column(7).Width = 14
WSReporte.Column(8).Width = 14
WSReporte.Column(9).Width = 14
WSReporte.Column(10).Width = 14
WSReporte.Cell(1, 1).Value = UsuarioActual.Empresa.Empresa
WSReporte.Cell(2, 1).Value = $"Libro Mayor del {txtFechaI.Text} al {txtFechaF.Text}"
If SubProyecto.Length > 0 Then
WSReporte.Cell(5, 1).Value = $"Sub Proyecto: {SubProyecto}"
WSReporte.Cell(5, 1).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Left
WSReporte.Cell(5, 1).Style.Font.Bold = True
End If
WSReporte.Cell(6, 1).Value = "Fecha"
WSReporte.Cell(6, 2).Value = $"Cuenta{vbCrLf}Tipo"
WSReporte.Cell(6, 1).Style.Alignment.Vertical = XLAlignmentVerticalValues.Center
WSReporte.Cell(6, 2).Style.Alignment.Vertical = XLAlignmentVerticalValues.Center
WSReporte.Cell(6, 3).Value = $"Número"
WSReporte.Cell(6, 4).Value = $"Concepto"
WSReporte.Cell(6, 5).Value = $"Referencia"
WSReporte.Cell(6, 6).Value = $"Referencia Movto"
WSReporte.Cell(6, 7).Value = $"{LblSubProyecto.Text}"
WSReporte.Cell(6, 8).Value = $"Cargos"
WSReporte.Cell(6, 9).Value = $"Abonos"
WSReporte.Cell(6, 10).Value = $"Saldo"
WSReporte.Range("A6:J6").Style.Font.Bold = True
WSReporte.Range("A6:J6").Style.Font.FontSize = 10
WSReporte.Range("A6:J6").Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center)
WSReporte.Range("A6:J6").Style.Border.TopBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
WSReporte.Range("A6:J6").Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
WSReporte.Range("A6:J6").Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
Dim CuerrentRow As Integer = 7
CuerrentRow = CuerrentRow + 1
For Each Drow As DataRow In DtDatos.Rows
If Drow("Concepto").ToString = "" Then
WSReporte.Range($"A{CuerrentRow }:J{CuerrentRow }").Style.Font.Bold = True
WSReporte.Range($"A{CuerrentRow }:J{CuerrentRow }").Style.Font.FontSize = FontSize.XXLarge '35
If Drow("SaldoActual").ToString = "" Then
'CType(e.Row.FindControl("tr2"), HtmlTableRow).Visible = False
'Cuando Es Total
WSReporte.Cell(CuerrentRow, 1).Value = Drow("Codigo").ToString
WSReporte.Cell(CuerrentRow, 4).Value = Drow("Nombre").ToString
WSReporte.Cell(CuerrentRow, 9).Value = "Saldo Inicial:"
WSReporte.Cell(CuerrentRow, 10).Value = Drow("SaldoInicial").ToString
WSReporte.Cell(CuerrentRow, 10).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Right)
WSReporte.Cell(CuerrentRow, 10).Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
If Drow("SaldoInicial").ToString.ToDecimal < 0 Then
WSReporte.Cell(CuerrentRow, 10).Style.Font.FontColor = XLColor.Red
End If
Else
'CType(e.Row.FindControl("tr1"), HtmlTableRow).Visible = False
WSReporte.Cell(CuerrentRow, 1).Value = Drow("Fecha").ToString
WSReporte.Cell(CuerrentRow, 2).Value = Drow("TipoPoliza").ToString
WSReporte.Cell(CuerrentRow, 3).Value = Drow("Folio").ToString
WSReporte.Cell(CuerrentRow, 4).Value = Drow("Concepto").ToString
WSReporte.Cell(CuerrentRow, 5).Value = Drow("Referencia").ToString
WSReporte.Cell(CuerrentRow, 6).Value = Drow("ReferenciaAdmin").ToString
WSReporte.Cell(CuerrentRow, 7).Value = Drow("SubProyecto").ToString
If TotalPadre Then
WSReporte.Cell(CuerrentRow, 5).Value = String.Format("Total {0}:", Drow("Nombre").ToString)
WSReporte.Cell(CuerrentRow, 5).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Right)
Else
TotalPadre = True
WSReporte.Cell(CuerrentRow, 5).Style.Font.Bold = False
WSReporte.Cell(CuerrentRow, 5).Value = "Total:"
WSReporte.Cell(CuerrentRow, 5).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Right)
End If
WSReporte.Cell(CuerrentRow, 8).Value = Drow("Cargos").ToString.FormatoNumero(If("1" = "1", 2, 4))
WSReporte.Cell(CuerrentRow, 9).Value = Drow("Abonos").ToString.FormatoNumero(If("1" = "1", 2, 4))
WSReporte.Cell(CuerrentRow, 10).Value = Drow("SaldoActual").ToString.FormatoNumero(If("1" = "1", 2, 4))
WSReporte.Range($"H{CuerrentRow}:J{CuerrentRow}").Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Right)
WSReporte.Range($"H{CuerrentRow}:J{CuerrentRow}").Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
If Drow("Cargos").ToString.ToDecimal < 0 Then
WSReporte.Cell(CuerrentRow, 8).Style.Font.FontColor = XLColor.Red
End If
If Drow("Abonos").ToString.ToDecimal < 0 Then
WSReporte.Cell(CuerrentRow, 9).Style.Font.FontColor = XLColor.Red
End If
If Drow("SaldoActual").ToString.ToDecimal < 0 Then
WSReporte.Cell(CuerrentRow, 10).Style.Font.FontColor = XLColor.Red
End If
End If
Else
WSReporte.Cell(CuerrentRow, 1).Value = Drow("Fecha").ToString
WSReporte.Cell(CuerrentRow, 2).Value = Drow("TipoPoliza").ToString
WSReporte.Cell(CuerrentRow, 3).Value = Drow("Folio").ToString
WSReporte.Cell(CuerrentRow, 4).Value = Drow("Concepto").ToString
WSReporte.Cell(CuerrentRow, 5).Value = Drow("Referencia").ToString
WSReporte.Cell(CuerrentRow, 6).Value = Drow("ReferenciaAdmin").ToString
WSReporte.Cell(CuerrentRow, 7).Value = Drow("SubProyecto").ToString
TotalPadre = False
WSReporte.Range($"A{CuerrentRow }:J{CuerrentRow }").Style.Font.Bold = False
WSReporte.Cell(CuerrentRow, 10).Value = Drow("Folio").ToString
WSReporte.Cell(CuerrentRow, 8).Value = Drow("CargosMovto").ToString.FormatoNumero(If("1" = "1", 2, 4))
WSReporte.Cell(CuerrentRow, 9).Value = Drow("AbonosMovto").ToString.FormatoNumero(If("1" = "1", 2, 4))
WSReporte.Cell(CuerrentRow, 10).Value = Drow("Saldo").ToString.FormatoNumero(If("1" = "1", 2, 4))
WSReporte.Range($"H{CuerrentRow}:J{CuerrentRow}").Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Right)
WSReporte.Range($"H{CuerrentRow}:J{CuerrentRow}").Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
If Drow("CargosMovto").ToString.ToDecimal < 0 Then
WSReporte.Cell(CuerrentRow, 8).Style.Font.FontColor = XLColor.Red
End If
If Drow("AbonosMovto").ToString.ToDecimal < 0 Then
WSReporte.Cell(CuerrentRow, 9).Style.Font.FontColor = XLColor.Red
End If
If Drow("Saldo").ToString.ToDecimal < 0 Then
WSReporte.Cell(CuerrentRow, 10).Style.Font.FontColor = XLColor.Red
End If
End If
CuerrentRow = CuerrentRow + 1
Next
For xy As Integer = 6 To CuerrentRow
WSReporte.Cell(xy, 10).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
WSReporte.Cell(xy, 1).Style.Border.LeftBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
Next
'CuerrentRow = CuerrentRow + 1
'WSReporte.Cell(CuerrentRow, 1).Style.Alignment.Vertical = XLAlignmentVerticalValues.Center
'WSReporte.Cell(CuerrentRow, 2).Style.Alignment.Vertical = XLAlignmentVerticalValues.Center
'WSReporte.Cell(CuerrentRow, 3).Value = $"Saldos Iniciales{vbCrLf}Deudor Acreedor"
'WSReporte.Cell(CuerrentRow, 4).Value = $"Cargos"
'WSReporte.Cell(CuerrentRow, 5).Value = $"Abonos"
'WSReporte.Cell(CuerrentRow, 6).Value = $"Saldo Actuales{vbCrLf} Deudor Acreedo"
WSReporte.Range($"A{CuerrentRow}:J{CuerrentRow}").Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
'WSReporte.Range($"A{CuerrentRow}:F{CuerrentRow}").Style.Font.Bold = True
'WSReporte.Range($"A{CuerrentRow}:F{CuerrentRow}").Style.Font.FontSize = 10
'WSReporte.Range($"A{CuerrentRow}:F{CuerrentRow}").Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center)
'WSReporte.Range($"A{CuerrentRow}:F{CuerrentRow}").Style.Border.TopBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
'WSReporte.Range($"A{CuerrentRow}:F{CuerrentRow}").Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
'WSReporte.Range($"A{CuerrentRow}:F{CuerrentRow}").Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
'CuerrentRow = CuerrentRow + 1
'Dim ultimaFila As DataRow = DtDatos.Rows(DtDatos.Rows.Count - 1)
'Dim LastSaldoID As Decimal = ultimaFila("SaldoID").ToString.ToDecimal
'Dim LastTotalAbonos As Decimal = ultimaFila("TotalAbonos").ToString.ToDecimal
'Dim LastTotalCargos As Decimal = ultimaFila("TotalCargos").ToString.ToDecimal
'Dim LastSaldoAD As Decimal = ultimaFila("SaldoAD").ToString.ToDecimal
'Dim LastSaldoIA As Decimal = ultimaFila("SaldoIA").ToString.ToDecimal
'Dim LastSaldoAA As Decimal = ultimaFila("SaldoAA").ToString.ToDecimal
'WSReporte.Cell(CuerrentRow, 2).Value = "Sumas Iguales"
'WSReporte.Cell(CuerrentRow, 3).Value = LastSaldoID
'WSReporte.Cell(CuerrentRow, 4).Value = LastTotalCargos
'WSReporte.Cell(CuerrentRow, 5).Value = LastTotalAbonos
'WSReporte.Cell(CuerrentRow, 6).Value = LastSaldoAD
'WSReporte.Cell(CuerrentRow, 3).Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
'WSReporte.Cell(CuerrentRow, 4).Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
'WSReporte.Cell(CuerrentRow, 5).Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
'WSReporte.Cell(CuerrentRow, 6).Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
CuerrentRow = CuerrentRow + 1
'WSReporte.Cell(CuerrentRow, 3).Value = LastSaldoIA
'WSReporte.Cell(CuerrentRow, 6).Value = LastSaldoAA
'WSReporte.Cell(CuerrentRow, 3).Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
'WSReporte.Cell(CuerrentRow, 6).Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
'WSReporte.Range($"B{CuerrentRow}:F{CuerrentRow}").Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
WSReporte.PageSetup.PrintAreas.Add($"A1:G{CuerrentRow + 0 + 1}")
WSReporte.PageSetup.Margins.Top = 0.3
WSReporte.PageSetup.Margins.Left = 0.8
WSReporte.PageSetup.Margins.Right = 0.8
WSReporte.PageSetup.FitToPages(1, 1)
WBReporte.Worksheet(1).CopyTo(WBAnexoSalvar, "LibroMayor")
Return WBReporte.Worksheet(1)
End Function
Public Function CloneGridView(ByVal originalGridView As GridView) As GridView
' Crear un nuevo GridView
Dim clonedGridView As New GridView()
' Copiar propiedades básicas del GridView
clonedGridView.ID = originalGridView.ID & "_Copy"
clonedGridView.AutoGenerateColumns = originalGridView.AutoGenerateColumns
clonedGridView.CssClass = originalGridView.CssClass
clonedGridView.GridLines = originalGridView.GridLines
clonedGridView.HeaderStyle.CopyFrom(originalGridView.HeaderStyle)
clonedGridView.RowStyle.CopyFrom(originalGridView.RowStyle)
clonedGridView.AlternatingRowStyle.CopyFrom(originalGridView.AlternatingRowStyle)
clonedGridView.FooterStyle.CopyFrom(originalGridView.FooterStyle)
clonedGridView.EmptyDataText = originalGridView.EmptyDataText
clonedGridView.ShowHeader = originalGridView.ShowHeader
clonedGridView.ShowFooter = originalGridView.ShowFooter
' Copiar columnas
For Each col As DataControlField In originalGridView.Columns
' Crear una copia de la columna
Dim clonedCol As DataControlField = CType(Activator.CreateInstance(col.GetType()), DataControlField)
clonedCol.HeaderStyle.CopyFrom(col.HeaderStyle)
clonedCol.ItemStyle.CopyFrom(col.ItemStyle)
clonedCol.FooterStyle.CopyFrom(col.FooterStyle)
' Si es un BoundField, copiar propiedades específicas
If TypeOf col Is BoundField Then
Dim originalBoundField As BoundField = CType(col, BoundField)
Dim clonedBoundField As BoundField = CType(clonedCol, BoundField)
clonedBoundField.DataField = originalBoundField.DataField
clonedBoundField.HeaderText = originalBoundField.HeaderText
clonedBoundField.SortExpression = originalBoundField.SortExpression
clonedBoundField.ReadOnly = originalBoundField.ReadOnly
End If
' Añadir la columna clonada al nuevo GridView
clonedGridView.Columns.Add(clonedCol)
Next
' Copiar el DataSource (opcional, dependiendo de si deseas copiar los datos actuales)
clonedGridView.DataSource = originalGridView.DataSource
clonedGridView.DataBind()
Return clonedGridView
End Function
Public Overrides Sub VerifyRenderingInServerForm(control As Control)
End Sub
End Class

View File

@@ -1,265 +0,0 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="LibroMayor2.aspx.vb" Inherits="Conta_LibroMayor2" EnableEventValidation="false" %>
<asp:Content ContentPlaceHolderID="Css" runat="server">
<style>
.truncate {
width: 300px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
table {
border: none !important;
}
tr {
border: none !important;
}
td {
border: none !important;
}
</style>
</asp:Content>
<asp:Content ID="Content1" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel ID="UpAcciones" runat="server" >
<ContentTemplate>
<li>
<asp:LinkButton ID="ImgExcel" runat="server" Visible="true"><i class="fa fa-file-excel-o" ></i> Generar EXCEL</asp:LinkButton>
</li>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="ImgExcel" />
</Triggers>
</asp:UpdatePanel>
<%-- <li>
<asp:LinkButton ID="Imprimir" runat="server" Visible="false"><i class="fa fa-print"></i> Imprimir</asp:LinkButton>
</li>--%>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="E" runat="Server">
Libro Mayor
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="BtnConsultar" runat="server" Text="Consultar" CssClass="btn btn-default" OnClick="BtnConsultar_Click" ValidationGroup="Valida" />
<a href="javascript:;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a><%--class="expand"--%>
<asp:CheckBox ID="chkexpand" CssClass="hidden" runat="server" />
</div>
<div class="titlefiltros caption ">
<div class="row">
<div class="col-md-1">
Cuenta:
</div>
<div class="col-md-3">
<asp:DropDownList ID="DdlCuentas" runat="server" AppendDataBoundItems="true" DataTextField="CuentaFormatoNombre" DataValueField="CveCuenta" CssClass="form-control input-sm select2me" Enabled="false">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVDdlCuentas" runat="server" InitialValue="-1" ControlToValidate="DdlCuentas" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cuenta''</b> es necesario, por favor ingréselo." ValidationGroup="GrpConsulta"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="CERFVDdlCuentas" runat="server" HighlightCssClass="vco" TargetControlID="RFVDdlCuentas" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-1">
Fecha Inicio:
</div>
<div class="col-md-1" style="min-width: 115px">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 100px !important; padding: 0px;">
<asp:TextBox Width="80px" ID="txtFechaI" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendario" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="txtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario" TargetControlID="txtFechaI" PopupButtonID="ImgCalendario" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="rfvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="GrpConsulta"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="cvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpConsulta"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoFfvFI" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="vcoCvFI" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-1">
Fecha Fin:
</div>
<div class="col-md-1" style="min-width: 115px">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 100% !important; padding: 0px;">
<asp:TextBox Width="80px" ID="txtFechaF" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendarioF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="txtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario2" TargetControlID="txtFechaF" PopupButtonID="imgCalendarioF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="rfvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="GrpConsulta"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="cvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpConsulta"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoRfvFF" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</div>
<div class="portlet-body" <%= IIf(chkexpand.Checked = True, "", "style=""display:none;""")%>>
<div class="row">
<div class="col-md-1 ">
Tipo Movto
</div>
<div class="col-md-3 ">
<asp:DropDownList ID="DdlOpcionCuentas" runat="server" DataTextField="Cuenta" DataValueField="CveCuenta" TabIndex="4" CssClass="form-control input-sm select2me" Width="100%">
<asp:ListItem Text="Todos" Value="-1"></asp:ListItem>
<asp:ListItem Text="Con movimientos" Value="1"></asp:ListItem>
<asp:ListItem Text="Saldo actual no igual a cero" Value="2"></asp:ListItem>
<asp:ListItem Text="Con movimientos y saldo no igual a cero" Value="3"></asp:ListItem>
<asp:ListItem Text="Con movimientos o saldo no igual a cero" Value="4"></asp:ListItem>
</asp:DropDownList>
</div>
<div class="col-md-1 " id="tdTipoReporte" visible="false" runat="server">
Tipo
</div>
<div class="col-md-2" id="tdTipoReporte2" visible="false" runat="server">
<asp:DropDownList ID="DdlTipoReporte" CssClass="form-control input-sm select2me" runat="server" Width="100%">
<asp:ListItem Text="Contable" Value="1"></asp:ListItem>
<asp:ListItem Text="Contable y Complementario" Value="3"></asp:ListItem>
<asp:ListItem Text="Complementario" Value="2"></asp:ListItem>
</asp:DropDownList>
</div>
<div class="col-md-1" id="divProyecto" runat="server">
<asp:Label ID="LblProyecto" runat="server">Proyecto:</asp:Label>
</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlProyecto" CssClass=" form-control input-sm select2me" runat="server" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="Proyecto" DataValueField="CveProyecto" Width="95%">
</asp:DropDownList>
</div>
<asp:Label runat="server" ID="LblSubProyecto" CssClass="col-md-1">SubProyecto:</asp:Label>
<div class="col-md-2">
<asp:DropDownList ID="DdlSubproyecto" CssClass="form-control input-sm select2me" runat="server" DataTextField="SubProyecto" DataValueField="CveSubProyecto" Width="95%" AutoPostBack="True">
</asp:DropDownList>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div class="row" style="margin-right: 10px; margin-top: 8px;" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:UpdatePanel ID="UpDatos" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<div style='color:red'></div>
<asp:GridView ID="GvDatos" runat="server"
CssClass="table table-striped table-advance table-hover " AutoGenerateColumns="False"
EmptyDataText="No se encontrarios movimientos."
DataKeyNames="" OnRowDataBound="GvDatos_RowDataBound">
<Columns>
<asp:TemplateField ControlStyle-CssClass="Widthall">
<HeaderTemplate>
<table width="100%" style="border: none">
<tr>
<td colspan="3"><font size="2">Cuenta</font></td>
<td colspan="1"><font size="2">Nombre</font></td>
<td colspan="4"></td>
<td><font size="2">Saldo Inicial</font></td>
</tr>
<tr>
<td width="60px" align="center">Fecha</td>
<td width="60px" align="center">Tipo</td>
<td width="60px" align="center">Número</td>
<td width="300px" align="left">Concepto</td>
<td width="100px" align="center">Referencia</td>
<td width="100px" align="center">Referencia Movto</td>
<td width="100px" align="center"><asp:Label ID="LblSubProyecto" runat="server"></asp:Label> </td>
<td width="100px" align="center">Cargos</td>
<td width="100px" align="center">Abonos</td>
<td width="100px" align="center">Saldo</td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<table width="100%" style="border: none">
<tr runat="server" id="tr1">
<td colspan="3" align="left" width="180px">
<asp:Label ID="LbCuenta" runat="server" Text='<%# Eval("Codigo")%>'></asp:Label>
</td>
<td colspan="1" align="left" width="300px">
<asp:Label ID="LbNombre" runat="server" Text='<%# Eval("Nombre")%>'></asp:Label>
</td>
<td colspan="2" width="200px"></td>
<td style="font-weight: normal;" align="right" width="100px">Saldo Inicial:
</td>
<td style="font-weight: normal;" align="right" width="100px">
<asp:Label ID="LbSaldoInicial" runat="server" Text='<%# Eval("SaldoInicial", "{0:N2}")%>'></asp:Label>
</td>
</tr>
<tr runat="server" id="tr2">
<td width="60px" style="border: 0px;" align="center">
<asp:Literal ID="LbFecha" runat="server" Text='<%# Eval("Fecha", "{0:d}")%>'></asp:Literal>
</td>
<td width="60px" style="border: 0px;" align="center">
<asp:Literal ID="LbTipo" runat="server" Text='<%# Eval("TipoPoliza")%>'></asp:Literal>
</td>
<td width="60px" style="border: 0px;" align="center">
<asp:HyperLink ID="HLPoliza" runat="server" Text='<%# Eval("Folio")%>' CssClass="Texto" Target="_blank"></asp:HyperLink>
</td>
<td width="300px" align="left">
<div class="truncate" style="width: 300px;">
<asp:Label ID="LbConcepto" runat="server" CssClass="truncate" Text='<%# Eval("Concepto")%>' title='<%# Eval("Concepto")%>'></asp:Label>
</div>
</td>
<td width="100px">
<asp:Label ID="LbReferencia" runat="server" Text='<%# Eval("Referencia")%>'></asp:Label>
</td>
<td width="60px" style="border: 0px;" align="center">
<asp:Literal ID="LtlRefMovto" runat="server" Text='<%# Eval("ReferenciaAdmin")%>'></asp:Literal>
</td>
<td width="100px">
<asp:Label ID="LblSubProyecto" runat="server" Text='<%# Eval("SubProyecto")%>'></asp:Label>
</td>
<td width="100px" align="right">
<asp:Label ID="LbCargos" runat="server"></asp:Label>
</td>
<td width="100px" align="right">
<asp:Label ID="LbAbonos" runat="server"></asp:Label>
</td>
<td width="100px" align="right">
<asp:Label ID="LbSaldo" runat="server"></asp:Label>
</td>
</tr>
</table>
</ItemTemplate>
<ItemStyle />
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -1,746 +0,0 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports ADServerControl.DragableList
Imports System.IO
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Imports ClosedXML.Excel
Imports System.Drawing
Partial Class Conta_LibroMayor2
Inherits ClsPaginas
#Region "PROPIEDADES"
Private Property DtDatos As DataTable
Get
If ViewState("DtDatos") Is Nothing Then
ViewState("DtDatos") = New DataTable
End If
Return DirectCast(ViewState("DtDatos"), DataTable)
End Get
Set(ByVal value As DataTable)
ViewState("DtDatos") = value
End Set
End Property
Private Property DtTotales As DataTable
Get
DtTotales = DirectCast(ViewState("DtTotales"), DataTable)
End Get
Set(ByVal value As DataTable)
ViewState("DtTotales") = value
End Set
End Property
Private Property FechaInicio As Date
Get
FechaInicio = ViewState("FechaInicio").ToString.ToDate
End Get
Set(value As Date)
ViewState("FechaInicio") = value
End Set
End Property
Private Property FechaFin As Date
Get
FechaFin = ViewState("FechaFin").ToString.ToDate
End Get
Set(value As Date)
ViewState("FechaFin") = value
End Set
End Property
Private Property TotalPadre As Boolean
Get
TotalPadre = CBool(ViewState("TotalPadre"))
End Get
Set(value As Boolean)
ViewState("TotalPadre") = value
End Set
End Property
Private Property DTCuentas As DataTable
Get
Return CType(ViewState("DTCuentas"), DataTable)
End Get
Set(value As DataTable)
ViewState("DTCuentas") = value
End Set
End Property
Private Property TipoReporte As String
Get
TipoReporte = ViewState("TP").ToString
End Get
Set(value As String)
ViewState("TP") = value
End Set
End Property
Private Property Cuenta As String
Get
Return ViewState("Cuenta").ToString
End Get
Set(value As String)
ViewState("Cuenta") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Dim ErrorParametros As Boolean = True
CargaTipoCuentas()
txtFechaI.Text = NowADS().FirstDayOfMonth.ToShortDateString
txtFechaF.Text = NowADS().LastDayOfMonth.ToShortDateString
If Request("CveCuenta") IsNot Nothing AndAlso IsNumeric(Request("CveCuenta")) AndAlso Request("CveCuenta").ToEntero > 0 Then
If Request("FF") IsNot Nothing AndAlso Request("FF").ToString.Length = 10 AndAlso Request("FF").ToDate > "01/01/1000".ToDate Then
FechaFin = Request("FF").ToDate
txtFechaF.Text = FechaFin.ToShortDateString
DdlCuentas.SelectedValueExist(Request("CveCuenta").ToEntero)
If Request("FI") IsNot Nothing AndAlso Request("FI").ToString.Length = 10 AndAlso Request("FI").ToDate > "01/01/1000".ToDate Then
FechaInicio = Request("FI").ToDate
txtFechaI.Text = FechaInicio.ToShortDateString
Else
FechaInicio = DateSerial(Year(FechaFin), Month(FechaFin), 1)
txtFechaF.Text = FechaInicio.ToShortDateString
End If
If Request("CveProyecto") IsNot Nothing AndAlso IsNumeric(Request("CveProyecto")) Then
DdlProyecto.SelectedValueExist(Request("CveProyecto"))
DdlProyecto_SelectedIndexChanged(Nothing, Nothing)
End If
If Request("CveSubProyecto") IsNot Nothing AndAlso IsNumeric(Request("CveSubProyecto")) Then
DdlSubproyecto.SelectedValueExist(Request("CveSubProyecto"))
End If
ErrorParametros = False
If Request("TP") IsNot Nothing AndAlso IsNumeric(Request("TP")) AndAlso Request("TP").ToEntero > 0 Then
TipoReporte = Request("TP").ToString
End If
End If
End If
If Not ErrorParametros Then
TotalPadre = True
TipoReporte = "1"
CargaDatos()
End If
End If
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
If DdlCuentas.SelectedValue.ToEntero = -2 Then
Alert("El campo Cuenta es obligatorio.", TipoMensaje.MsgError)
Else
FechaInicio = If(txtFechaI.Text = "" Or txtFechaI.Text = "__/__/____", NowADS(), txtFechaI.Text.ToDate)
FechaFin = If(txtFechaF.Text = "" Or txtFechaF.Text = "__/__/____", NowADS(), txtFechaF.Text.ToDate)
CargaDatos()
End If
End Sub
#Region "C A R G A - D A T O S"
Private Sub CargaTipoCuentas()
Dim ObjTipoCuenta As New ClsContabilidad
DdlCuentas.Enabled = True
If ObjTipoCuenta.GetCuentas(-1, "-1", -1, UsuarioActual.CveEmpresa) Then
DTCuentas = ObjTipoCuenta.DtResultados
DdlCuentas.DataSource = ObjTipoCuenta.DtResultados.FiltraParametros("Codigo NOT IN ('_ACTIVO', '_PASIVO', '_CAPITAL', '_CUADRE', '_ESTADISTICAS', '_ORDEN', '_RACREEDOR', '_RDEUDOR', '_UTILIDAD')")
End If
ObjTipoCuenta.Dispose()
DdlCuentas.DataBind()
CargarCentrosDeCosto(DdlProyecto, DdlSubproyecto, LblProyecto, LblSubProyecto, divProyecto:=divProyecto)
End Sub
Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged
CargarSubProyecto(DdlSubproyecto, DdlProyecto.SelectedValue, "Todos")
End Sub
Private Sub CargaDatos(Optional RenderGv As Boolean = True)
Dim CveProyecto As Integer = DdlProyecto.SelectedValue.ToEntero
Dim CveSubProyecto As Integer = DdlSubproyecto.SelectedValue.ToEntero
TipoReporte = DdlTipoReporte.SelectedValue.ToString
Cuenta = DdlCuentas.SelectedItem.ToString
Dim ObjConta As New ClsContabilidad
If ObjConta.GetLibroMayor2(DdlCuentas.SelectedValue.ToEntero, FechaInicio, FechaFin, -1, CveProyecto, CveSubProyecto, UsuarioActual.CveEmpresa, TipoReporte, DdlOpcionCuentas.SelectedValue.ToEntero) Then
DtDatos = ObjConta.DtResultados
DtTotales = DtDatos.Clone
If RenderGv Then
CargaGrid()
End If
Else
DtDatos = Nothing
End If
ObjConta.Dispose()
End Sub
#End Region
Private Sub InsertaTotales()
Dim i As Integer = 0
Dim Aumento As Integer = 0
Dim Row As DataRow
Dim Row2 As DataRow
'Llena DtTotales
For Each dr As DataRow In DtDatos.Rows
If dr("Concepto").ToString = "" Then
Row = DtTotales.NewRow
Row("CveCuenta") = -1
Row("CargosMovto") = If("1" = "1", dr("Cargos"), dr("CargosME"))
Row("AbonosMovto") = If("1" = "1", dr("Abonos"), dr("AbonosME"))
Row("Saldo") = dr("SaldoActual")
Row("CtaMayor") = dr("CtaMayor")
Row("Concepto") = String.Format("Total {0}:", dr("Nombre"))
Row("Nombre") = dr("Nombre")
DtTotales.Rows.Add(Row)
Row("Clasificacion") = i
End If
i += 1
Next
'Inserta Totales en DtDatos
For Each dr As DataRow In DtTotales.Rows
i = 0
If dr("CtaMayor").ToString = "1" Then
DtDatos.ImportRow(dr)
End If
If dr("CtaMayor").ToString = "2" Then
For index As Integer = dr("Clasificacion").ToString.ToEntero + Aumento To DtDatos.Rows.Count
If DtDatos.Rows(index)("Nombre").ToString <> dr("Nombre").ToString Then
i = index
Exit For
End If
Next
Row2 = DtDatos.NewRow
Row2.ItemArray = dr.ItemArray
DtDatos.Rows.InsertAt(Row2, i + Aumento)
Aumento += 1
End If
Next
End Sub
#Region "G R I D - GV DATOS"
Private Sub CargaGrid()
GvDatos.DataSource = DtDatos
'GvDatos.Dispose()
GvDatos.DataBind()
UpDatos.Update()
End Sub
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.Header Then
e.Row.FCLabel("LblSubProyecto").Text = LblSubProyecto.Text
End If
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("Concepto") = "" Then
e.Row.ControlStyle.Font.Bold = True
e.Row.ControlStyle.Height = 35
'Cuando es Titulo
If e.Row.DBCampo("SaldoActual") = "" Then
CType(e.Row.FindControl("tr2"), HtmlTableRow).Visible = False
'Cuando Es Total
Else
CType(e.Row.FindControl("tr1"), HtmlTableRow).Visible = False
'Anterior para TotalPadre
'If e.Row.DBCampo("CtaMayor").ToString = "2" And (e.Row.DBCampo("Nivel3").ToString <> "" Xor e.Row.DBCampo("Orden").ToString.Length = 18) Then
' e.Row.FCLabel("LbReferencia").Text = "Total:"
'Else
' e.Row.FCLabel("LbConcepto").Text = String.Format("Total {0}:", e.Row.DBCampo("Nombre").ToString)
'End If
If TotalPadre Then
CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(3).Width = "1px"
'CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells.Remove(CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(3))
CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(3).Align = "Right"
CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(3).Width = "400px"
If e.Row.RowIndex + 1 = DtDatos.Rows.Count Then
CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(4).Attributes.Add("style", "border-top: 1px solid black;")
CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(5).Attributes.Add("style", "border-top: 1px solid black;")
CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(6).Attributes.Add("style", "border-top: 1px solid black;")
End If
e.Row.FCLabel("LbReferencia").Text = String.Format("Total {0}:", e.Row.DBCampo("Nombre").ToString)
Else
TotalPadre = True
e.Row.FCLabel("LbReferencia").Font.Bold = False
e.Row.FCLabel("LbReferencia").Text = "Total:"
CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(4).Align = "Right"
End If
'e.Row.FCLabel("LbReferencia").Text = String.Format("Total {0}:", If(e.Row.DBCampo("CtaMayor").ToString = "2", "", e.Row.DBCampo("Nombre").ToString))
e.Row.FCLabel("LbCargos").Text = e.Row.DBCampo("Cargos").ToString.FormatoNumero(If("1" = "1", 2, 4))
e.Row.FCLabel("LbAbonos").Text = e.Row.DBCampo("Abonos").ToString.FormatoNumero(If("1" = "1", 2, 4))
e.Row.FCLabel("LbSaldo").Text = e.Row.DBCampo("SaldoActual").ToString.FormatoNumero(If("1" = "1", 2, 4))
End If
Else
TotalPadre = False
e.Row.ControlStyle.Font.Bold = False
CType(e.Row.FindControl("tr1"), HtmlTableRow).Visible = False
e.Row.FCHyperLink("HLPoliza").NavigateUrl = String.Format("/Contabilidad/RegPrePolizas.aspx?CvePrePoliza={0}", e.Row.DBCampo("CvePoliza"))
If e.Row.DBCampo("CargosMovto").ToDouble <> 0 Then e.Row.FCLabel("LbCargos").Text = e.Row.DBCampo("CargosMovto").ToString.FormatoNumero(If("1" = "1", 2, 4))
If e.Row.DBCampo("AbonosMovto").ToDouble <> 0 Then e.Row.FCLabel("LbAbonos").Text = e.Row.DBCampo("AbonosMovto").ToString.FormatoNumero(If("1" = "1", 2, 4))
If e.Row.DBCampo("Saldo").ToDouble <> 0 Then e.Row.FCLabel("LbSaldo").Text = e.Row.DBCampo("Saldo").ToString.FormatoNumero(If("1" = "1", 2, 4))
End If
'COLOREA NEGATIVOS
If e.Row.FCLabel("LbCargos").Text.ToDouble < 0 Then
e.Row.FCLabel("LbCargos").ForeColor = Drawing.Color.Red
Else
e.Row.FCLabel("LbCargos").ForeColor = Drawing.Color.Black
End If
If e.Row.FCLabel("LbAbonos").Text.ToDouble < 0 Then
e.Row.FCLabel("LbAbonos").ForeColor = Drawing.Color.Red
Else
e.Row.FCLabel("LbAbonos").ForeColor = Drawing.Color.Black
End If
If e.Row.FCLabel("LbSaldo").Text.ToDouble < 0 Then
e.Row.FCLabel("LbSaldo").ForeColor = Drawing.Color.Red
Else
e.Row.FCLabel("LbSaldo").ForeColor = Drawing.Color.Black
End If
If e.Row.FCLabel("LbSaldoInicial").Text.ToDouble < 0 Then
e.Row.FCLabel("LbSaldoInicial").ForeColor = Drawing.Color.Red
Else
e.Row.FCLabel("LbSaldoInicial").ForeColor = Drawing.Color.Black
End If
End If
End Sub
#End Region
Protected Sub Imprimir_click(sender As Object, e As EventArgs)
If DdlCuentas.SelectedValue.ToEntero = -1 Then
Alert("El campo Cuenta es obligatorio.", TipoMensaje.MsgError)
Else
FechaInicio = If(txtFechaI.Text = "" Or txtFechaI.Text = "__/__/____", NowADS(), txtFechaI.Text.ToDate)
FechaFin = If(txtFechaF.Text = "" Or txtFechaF.Text = "__/__/____", NowADS(), txtFechaF.Text.ToDate)
DtDatos = DtDatos
ImprimirReporte()
End If
End Sub
Protected Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click
ImprimirReporte("Excel")
End Sub
Private Sub ImprimirReporte(Optional Formato As String = "PDF")
Dim WBLibroMayor = New ClosedXML.Excel.XLWorkbook
Dim TipoReporte = DdlTipoReporte.SelectedValue.ToEntero
FechaInicio = If(txtFechaI.Text = "" Or txtFechaI.Text = "__/__/____", NowADS(), txtFechaI.Text.ToDate)
FechaFin = If(txtFechaF.Text = "" Or txtFechaF.Text = "__/__/____", NowADS(), txtFechaF.Text.ToDate)
DtDatos.Rows.Clear()
CargaDatos(False)
If DtDatos.Rows.Count > 0 Then
Dim sp As String = If(DdlSubproyecto.SelectedValue.ToEntero > 0, DdlSubproyecto.SelectedItem.Text, "")
WBLibroMayor.AddWorksheet(WSDocumento(sp, DtDatos))
WBLibroMayor.Worksheet(1).Name = $"LibroMayor"
End If
Dim msB = New MemoryStream()
WBLibroMayor.SaveAs(msB)
Dim BB As Byte() = msB.ToArray
msB.Dispose()
Response.Clear()
Response.Buffer = True
Response.AddHeader("content-disposition", "attachment; filename=Balanza_" & Now.ToString("yyyyMMddhhmmss") & ".xlsx")
Response.ContentType = "application/vnd.ms-excel"
Response.BinaryWrite(BB)
Response.End()
End Sub
Function WSDocumento(SubProyecto As String, DtDatos As DataTable) As IXLWorksheet
Dim WBAnexoSalvar = New ClosedXML.Excel.XLWorkbook
Dim WBReporte = New ClosedXML.Excel.XLWorkbook()
WBReporte.Worksheets.Add("1")
Dim WSReporte = WBReporte.Worksheet(1)
Dim RutaLogo As String = String.Format("{0}Logo.png", UsuarioActual.Empresa.Ruta)
If File.Exists(RutaLogo) Then
Dim imagePath As String = RutaLogo
Dim img As Bitmap = New Bitmap(imagePath)
Dim picture = WSReporte.AddPicture(img).MoveTo(WSReporte.Cell("A1"))
picture.Scale(0.5)
End If
Dim Tamaniofuente As Integer = 13
Dim Range = WSReporte.Range("A1:D1")
WSReporte.Style.Font.FontSize = 10
WSReporte.Style.Font.FontName = "Arial Narrow"
WSReporte.Style.Alignment.WrapText = True
Range.Merge().Style.Font.SetBold().Font.FontSize = Tamaniofuente
WSReporte.Range("A1:J1").Merge().Style.Font.SetBold().Font.FontSize = Tamaniofuente
WSReporte.Range("A2:J2").Merge().Style.Font.SetBold().Font.FontSize = Tamaniofuente
WSReporte.Range("A3:J3").Merge().Style.Font.SetBold().Font.FontSize = Tamaniofuente
WSReporte.Range("A4:J4").Merge().Style.Font.SetBold().Font.FontSize = Tamaniofuente
WSReporte.Range("A5:J5").Merge().Style.Font.SetBold().Font.FontSize = Tamaniofuente
WSReporte.Range("A1:A5").Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center)
WSReporte.Column(1).Width = 15
WSReporte.Column(2).Width = 15
WSReporte.Column(3).Width = 14
WSReporte.Column(4).Width = 70
WSReporte.Column(5).Width = 35
WSReporte.Column(6).Width = 20
WSReporte.Column(7).Width = 14
WSReporte.Column(8).Width = 14
WSReporte.Column(9).Width = 14
WSReporte.Column(10).Width = 14
WSReporte.Cell(1, 1).Value = UsuarioActual.Empresa.Empresa
WSReporte.Cell(2, 1).Value = $"Libro Mayor del {txtFechaI.Text} al {txtFechaF.Text}"
If SubProyecto.Length > 0 Then
WSReporte.Cell(5, 1).Value = $"Sub Proyecto: {SubProyecto}"
WSReporte.Cell(5, 1).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Left
WSReporte.Cell(5, 1).Style.Font.Bold = True
End If
WSReporte.Cell(6, 1).Value = "Fecha"
WSReporte.Cell(6, 2).Value = $"Cuenta{vbCrLf}Tipo"
WSReporte.Cell(6, 1).Style.Alignment.Vertical = XLAlignmentVerticalValues.Center
WSReporte.Cell(6, 2).Style.Alignment.Vertical = XLAlignmentVerticalValues.Center
WSReporte.Cell(6, 3).Value = $"Número"
WSReporte.Cell(6, 4).Value = $"Concepto"
WSReporte.Cell(6, 5).Value = $"Referencia"
WSReporte.Cell(6, 6).Value = $"Referencia Movto"
WSReporte.Cell(6, 7).Value = $"{LblSubProyecto.Text}"
WSReporte.Cell(6, 8).Value = $"Cargos"
WSReporte.Cell(6, 9).Value = $"Abonos"
WSReporte.Cell(6, 10).Value = $"Saldo"
WSReporte.Range("A6:J6").Style.Font.Bold = True
WSReporte.Range("A6:J6").Style.Font.FontSize = 10
WSReporte.Range("A6:J6").Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center)
WSReporte.Range("A6:J6").Style.Border.TopBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
WSReporte.Range("A6:J6").Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
WSReporte.Range("A6:J6").Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
Dim CuerrentRow As Integer = 7
CuerrentRow = CuerrentRow + 1
For Each Drow As DataRow In DtDatos.Rows
If Drow("Concepto").ToString = "" Then
WSReporte.Range($"A{CuerrentRow }:J{CuerrentRow }").Style.Font.Bold = True
WSReporte.Range($"A{CuerrentRow }:J{CuerrentRow }").Style.Font.FontSize = FontSize.XXLarge '35
If Drow("SaldoActual").ToString = "" Then
'CType(e.Row.FindControl("tr2"), HtmlTableRow).Visible = False
'Cuando Es Total
WSReporte.Cell(CuerrentRow, 1).Value = Drow("Codigo").ToString
WSReporte.Cell(CuerrentRow, 4).Value = Drow("Nombre").ToString
WSReporte.Cell(CuerrentRow, 9).Value = "Saldo Inicial:"
WSReporte.Cell(CuerrentRow, 10).Value = Drow("SaldoInicial").ToString
WSReporte.Cell(CuerrentRow, 10).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Right)
WSReporte.Cell(CuerrentRow, 10).Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
If Drow("SaldoInicial").ToString.ToDecimal < 0 Then
WSReporte.Cell(CuerrentRow, 10).Style.Font.FontColor = XLColor.Red
End If
Else
'CType(e.Row.FindControl("tr1"), HtmlTableRow).Visible = False
WSReporte.Cell(CuerrentRow, 1).Value = Drow("Fecha").ToString
WSReporte.Cell(CuerrentRow, 2).Value = Drow("TipoPoliza").ToString
WSReporte.Cell(CuerrentRow, 3).Value = Drow("Folio").ToString
WSReporte.Cell(CuerrentRow, 4).Value = Drow("Concepto").ToString
WSReporte.Cell(CuerrentRow, 5).Value = Drow("Referencia").ToString
WSReporte.Cell(CuerrentRow, 6).Value = Drow("ReferenciaAdmin").ToString
WSReporte.Cell(CuerrentRow, 7).Value = Drow("SubProyecto").ToString
If TotalPadre Then
WSReporte.Cell(CuerrentRow, 5).Value = String.Format("Total {0}:", Drow("Nombre").ToString)
WSReporte.Cell(CuerrentRow, 5).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Right)
Else
TotalPadre = True
WSReporte.Cell(CuerrentRow, 5).Style.Font.Bold = False
WSReporte.Cell(CuerrentRow, 5).Value = "Total:"
WSReporte.Cell(CuerrentRow, 5).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Right)
End If
WSReporte.Cell(CuerrentRow, 8).Value = Drow("Cargos").ToString.FormatoNumero(If("1" = "1", 2, 4))
WSReporte.Cell(CuerrentRow, 9).Value = Drow("Abonos").ToString.FormatoNumero(If("1" = "1", 2, 4))
WSReporte.Cell(CuerrentRow, 10).Value = Drow("SaldoActual").ToString.FormatoNumero(If("1" = "1", 2, 4))
WSReporte.Range($"H{CuerrentRow}:J{CuerrentRow}").Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Right)
WSReporte.Range($"H{CuerrentRow}:J{CuerrentRow}").Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
If Drow("Cargos").ToString.ToDecimal < 0 Then
WSReporte.Cell(CuerrentRow, 8).Style.Font.FontColor = XLColor.Red
End If
If Drow("Abonos").ToString.ToDecimal < 0 Then
WSReporte.Cell(CuerrentRow, 9).Style.Font.FontColor = XLColor.Red
End If
If Drow("SaldoActual").ToString.ToDecimal < 0 Then
WSReporte.Cell(CuerrentRow, 10).Style.Font.FontColor = XLColor.Red
End If
End If
Else
WSReporte.Cell(CuerrentRow, 1).Value = Drow("Fecha").ToString
WSReporte.Cell(CuerrentRow, 2).Value = Drow("TipoPoliza").ToString
WSReporte.Cell(CuerrentRow, 3).Value = Drow("Folio").ToString
WSReporte.Cell(CuerrentRow, 4).Value = Drow("Concepto").ToString
WSReporte.Cell(CuerrentRow, 5).Value = Drow("Referencia").ToString
WSReporte.Cell(CuerrentRow, 6).Value = Drow("ReferenciaAdmin").ToString
WSReporte.Cell(CuerrentRow, 7).Value = Drow("SubProyecto").ToString
TotalPadre = False
WSReporte.Range($"A{CuerrentRow }:J{CuerrentRow }").Style.Font.Bold = False
WSReporte.Cell(CuerrentRow, 10).Value = Drow("Folio").ToString
WSReporte.Cell(CuerrentRow, 8).Value = Drow("CargosMovto").ToString.FormatoNumero(If("1" = "1", 2, 4))
WSReporte.Cell(CuerrentRow, 9).Value = Drow("AbonosMovto").ToString.FormatoNumero(If("1" = "1", 2, 4))
WSReporte.Cell(CuerrentRow, 10).Value = Drow("Saldo").ToString.FormatoNumero(If("1" = "1", 2, 4))
WSReporte.Range($"H{CuerrentRow}:J{CuerrentRow}").Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Right)
WSReporte.Range($"H{CuerrentRow}:J{CuerrentRow}").Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
If Drow("CargosMovto").ToString.ToDecimal < 0 Then
WSReporte.Cell(CuerrentRow, 8).Style.Font.FontColor = XLColor.Red
End If
If Drow("AbonosMovto").ToString.ToDecimal < 0 Then
WSReporte.Cell(CuerrentRow, 9).Style.Font.FontColor = XLColor.Red
End If
If Drow("Saldo").ToString.ToDecimal < 0 Then
WSReporte.Cell(CuerrentRow, 10).Style.Font.FontColor = XLColor.Red
End If
End If
CuerrentRow = CuerrentRow + 1
Next
For xy As Integer = 6 To CuerrentRow
WSReporte.Cell(xy, 10).Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
WSReporte.Cell(xy, 1).Style.Border.LeftBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
Next
'CuerrentRow = CuerrentRow + 1
'WSReporte.Cell(CuerrentRow, 1).Style.Alignment.Vertical = XLAlignmentVerticalValues.Center
'WSReporte.Cell(CuerrentRow, 2).Style.Alignment.Vertical = XLAlignmentVerticalValues.Center
'WSReporte.Cell(CuerrentRow, 3).Value = $"Saldos Iniciales{vbCrLf}Deudor Acreedor"
'WSReporte.Cell(CuerrentRow, 4).Value = $"Cargos"
'WSReporte.Cell(CuerrentRow, 5).Value = $"Abonos"
'WSReporte.Cell(CuerrentRow, 6).Value = $"Saldo Actuales{vbCrLf} Deudor Acreedo"
WSReporte.Range($"A{CuerrentRow}:J{CuerrentRow}").Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
'WSReporte.Range($"A{CuerrentRow}:F{CuerrentRow}").Style.Font.Bold = True
'WSReporte.Range($"A{CuerrentRow}:F{CuerrentRow}").Style.Font.FontSize = 10
'WSReporte.Range($"A{CuerrentRow}:F{CuerrentRow}").Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center)
'WSReporte.Range($"A{CuerrentRow}:F{CuerrentRow}").Style.Border.TopBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
'WSReporte.Range($"A{CuerrentRow}:F{CuerrentRow}").Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
'WSReporte.Range($"A{CuerrentRow}:F{CuerrentRow}").Style.Border.RightBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
'CuerrentRow = CuerrentRow + 1
'Dim ultimaFila As DataRow = DtDatos.Rows(DtDatos.Rows.Count - 1)
'Dim LastSaldoID As Decimal = ultimaFila("SaldoID").ToString.ToDecimal
'Dim LastTotalAbonos As Decimal = ultimaFila("TotalAbonos").ToString.ToDecimal
'Dim LastTotalCargos As Decimal = ultimaFila("TotalCargos").ToString.ToDecimal
'Dim LastSaldoAD As Decimal = ultimaFila("SaldoAD").ToString.ToDecimal
'Dim LastSaldoIA As Decimal = ultimaFila("SaldoIA").ToString.ToDecimal
'Dim LastSaldoAA As Decimal = ultimaFila("SaldoAA").ToString.ToDecimal
'WSReporte.Cell(CuerrentRow, 2).Value = "Sumas Iguales"
'WSReporte.Cell(CuerrentRow, 3).Value = LastSaldoID
'WSReporte.Cell(CuerrentRow, 4).Value = LastTotalCargos
'WSReporte.Cell(CuerrentRow, 5).Value = LastTotalAbonos
'WSReporte.Cell(CuerrentRow, 6).Value = LastSaldoAD
'WSReporte.Cell(CuerrentRow, 3).Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
'WSReporte.Cell(CuerrentRow, 4).Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
'WSReporte.Cell(CuerrentRow, 5).Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
'WSReporte.Cell(CuerrentRow, 6).Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
CuerrentRow = CuerrentRow + 1
'WSReporte.Cell(CuerrentRow, 3).Value = LastSaldoIA
'WSReporte.Cell(CuerrentRow, 6).Value = LastSaldoAA
'WSReporte.Cell(CuerrentRow, 3).Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
'WSReporte.Cell(CuerrentRow, 6).Style.NumberFormat.Format = "#,##0.00; [Black] - #,##0.00 ;""-"""
'WSReporte.Range($"B{CuerrentRow}:F{CuerrentRow}").Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.Medium
WSReporte.PageSetup.PrintAreas.Add($"A1:G{CuerrentRow + 0 + 1}")
WSReporte.PageSetup.Margins.Top = 0.3
WSReporte.PageSetup.Margins.Left = 0.8
WSReporte.PageSetup.Margins.Right = 0.8
WSReporte.PageSetup.FitToPages(1, 1)
WBReporte.Worksheet(1).CopyTo(WBAnexoSalvar, "LibroMayor")
Return WBReporte.Worksheet(1)
End Function
Public Function CloneGridView(ByVal originalGridView As GridView) As GridView
' Crear un nuevo GridView
Dim clonedGridView As New GridView()
' Copiar propiedades básicas del GridView
clonedGridView.ID = originalGridView.ID & "_Copy"
clonedGridView.AutoGenerateColumns = originalGridView.AutoGenerateColumns
clonedGridView.CssClass = originalGridView.CssClass
clonedGridView.GridLines = originalGridView.GridLines
clonedGridView.HeaderStyle.CopyFrom(originalGridView.HeaderStyle)
clonedGridView.RowStyle.CopyFrom(originalGridView.RowStyle)
clonedGridView.AlternatingRowStyle.CopyFrom(originalGridView.AlternatingRowStyle)
clonedGridView.FooterStyle.CopyFrom(originalGridView.FooterStyle)
clonedGridView.EmptyDataText = originalGridView.EmptyDataText
clonedGridView.ShowHeader = originalGridView.ShowHeader
clonedGridView.ShowFooter = originalGridView.ShowFooter
' Copiar columnas
For Each col As DataControlField In originalGridView.Columns
' Crear una copia de la columna
Dim clonedCol As DataControlField = CType(Activator.CreateInstance(col.GetType()), DataControlField)
clonedCol.HeaderStyle.CopyFrom(col.HeaderStyle)
clonedCol.ItemStyle.CopyFrom(col.ItemStyle)
clonedCol.FooterStyle.CopyFrom(col.FooterStyle)
' Si es un BoundField, copiar propiedades específicas
If TypeOf col Is BoundField Then
Dim originalBoundField As BoundField = CType(col, BoundField)
Dim clonedBoundField As BoundField = CType(clonedCol, BoundField)
clonedBoundField.DataField = originalBoundField.DataField
clonedBoundField.HeaderText = originalBoundField.HeaderText
clonedBoundField.SortExpression = originalBoundField.SortExpression
clonedBoundField.ReadOnly = originalBoundField.ReadOnly
End If
' Añadir la columna clonada al nuevo GridView
clonedGridView.Columns.Add(clonedCol)
Next
' Copiar el DataSource (opcional, dependiendo de si deseas copiar los datos actuales)
clonedGridView.DataSource = originalGridView.DataSource
clonedGridView.DataBind()
Return clonedGridView
End Function
Public Overrides Sub VerifyRenderingInServerForm(control As Control)
End Sub
End Class

View File

@@ -0,0 +1,116 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="LibroMayorCI.aspx.vb" Inherits="Contabilidad_LibroMayorCI" %>
<asp:Content ContentPlaceHolderID="Css" runat="server">
<style>
.truncate {
width: 300px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
</style>
</asp:Content>
<asp:Content ID="Content1" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<li>
<asp:LinkButton ID="ImgExcel" Visible="false" runat="server"><i class="fa fa-ad-excel"></i> Generar EXCEL</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="Imprimir" Visible="false" runat="server"><i class="fa fa-print"></i> Imprimir</asp:LinkButton>
</li>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="ImgExcel" />
<asp:PostBackTrigger ControlID="Imprimir" />
</Triggers>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="E" runat="Server">
Libro Mayor
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="BtnConsultar" runat="server" CssClass="btn btn-primary" Text="Consultar" Width="100px" OnClick="BtnConsultar_Click" Enabled="false"/>
</div>
<div class="titlefiltros caption ">
<div class="row">
<label class="col-md-1" style="width: 90px; padding-right: 2px;">Fecha Inicio:</label>
<div class="col-md-2" style="width: 140px;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 80px !important; padding: 0px;">
<asp:TextBox ID="TxtFechaDel" runat="server" CssClass="form-control" Width="99%" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgCalendarioDel" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaDel" runat="server" TargetControlID="TxtFechaDel" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender ID="CalendarioDel" runat="server" TargetControlID="TxtFechaDel" PopupButtonID="ImgCalendarioDel" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="CVFechaDel" runat="server" ControlToValidate="TxtFechaDel" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFecha2Del" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaDel" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<label class="col-md-1" style="width: 80px; padding-right: 2px;">Fecha Fin:</label>
<div class="col-md-2" style="width: 140px;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 80px !important; padding: 0px;">
<asp:TextBox ID="TxtFechaAl" runat="server" CssClass="form-control" Width="99%" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgCalendarioAl" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaAl" runat="server" TargetControlID="TxtFechaAl" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender ID="CalendarioAl" runat="server" TargetControlID="TxtFechaAl" PopupButtonID="ImgCalendarioAl" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="CVFechaAl" runat="server" ControlToValidate="TxtFechaAl" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFecha2Al" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaAl" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<%-- <label class="col-md-2" style="width: 60px;">Moneda:</label>
<div class="col-md-1">
<asp:DropDownList ID="DdlMoneda" CssClass="select2me" runat="server" DataTextField="Moneda" DataValueField="CveMoneda" TabIndex="5" ClientIDMode="Static">
</asp:DropDownList>
</div>--%>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<%-- <br />
<div class="text-right">Buscar :
<input type="text" id="Buscar" style="margin-right: 30px;" />
</div>--%>
<asp:UpdatePanel ID="UpDatos" UpdateMode="Conditional" runat="server" style="margin-left: 15px; margin-right: 15px;">
<ContentTemplate>
<asp:GridView ID="GvDatos" CssClass="table table-striped table-hover Widthall" GridLines="None" AutoGenerateColumns="False" runat="server">
<Columns>
<asp:BoundField HeaderText="Fecha" DataField="Fecha" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" />
<asp:BoundField HeaderText="Tipo" DataField="TipoPol" />
<asp:BoundField HeaderText="Poliza" DataField="Folio" />
<asp:BoundField HeaderText="Descripción" DataField="Concepto" />
<asp:BoundField HeaderText="Cargos" DataField="Cargos" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:#,##0.00}" />
<asp:BoundField HeaderText="Abonos" DataField="Abonos" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:#,##0.00}" />
<asp:BoundField HeaderText="Saldo" DataField="Saldo" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:#,##0.00}" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,220 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Contabilidad_LibroMayorCI
Inherits ClsPaginas
#Region "PROPIEDADES"
Private Property DtDatos As DataTable
Get
DtDatos = DirectCast(ViewState("DtDatos"), DataTable)
End Get
Set(ByVal value As DataTable)
ViewState("DtDatos") = value
End Set
End Property
Private Property FechaInicio As Date
Get
FechaInicio = ViewState("FechaInicio").ToString.ToDate
End Get
Set(value As Date)
ViewState("FechaInicio") = value
End Set
End Property
Private Property FechaFin As Date
Get
FechaFin = ViewState("FechaFin").ToString.ToDate
End Get
Set(value As Date)
ViewState("FechaFin") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
InicializaValores()
If UsuarioActual.Empresa.UsaAC Then
BtnConsultar.Enabled = True
Else
If UsuarioActual.Empresa.TipoContabilidad = 1 Then
BtnConsultar.Enabled = True
Else
Alert("La empresa no usa Armonización Contable", TipoMensaje.MsgError)
End If
End If
End If
End Sub
Private Sub InicializaValores()
TxtFechaDel.Text = $"01/01/{NowADS().Year}"
TxtFechaAl.Text = NowADS().ToShortDateString
'DdlMoneda.DataSource = GlobalDTMonedas
'DdlMoneda.DataBind()
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
CargaDatos()
End Sub
#Region "C A R G A - D A T O S"
Private Sub CargaDatos()
FechaInicio = If(IsDate(TxtFechaDel.Text), TxtFechaDel.Text.ToDate, MinFecha)
FechaFin = If(IsDate(TxtFechaAl.Text), TxtFechaAl.Text.ToDate, MaxFecha)
If UsuarioActual.Empresa.TipoContabilidad = 1 Then
Dim ObjConta As New ClsContabilidad
If ObjConta.GetLibroMayorSIG(-1, FechaInicio, FechaFin, 1, UsuarioActual.CveEmpresa) Then
DtDatos = ObjConta.DtResultados
Else
DtDatos = Nothing
End If
ObjConta.Dispose()
Else
Dim ObjConta As New ClsContPAQi(UsuarioActual.Empresa)
If ObjConta.GetLibroMayor(1, FechaInicio, FechaFin, 1) Then
DtDatos = ObjConta.DtResultados
Else
DtDatos = Nothing
End If
ObjConta.Dispose()
End If
If DtDatos IsNot Nothing Then
ImgExcel.Visible = True
Imprimir.Visible = True
CargaGrid()
Else
ImgExcel.Visible = False
Imprimir.Visible = False
End If
End Sub
#End Region
#Region "G R I D - GV DATOS"
Private Sub CargaGrid()
GvDatos.DataSource = DtDatos
GvDatos.DataBind()
UpDatos.Update()
End Sub
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
'0 Fecha
'1 TipoPol
'2 Folio
'3 Concepto
'4 Cargos
'5 Abonos
'6 Saldo
'CABECERA
If e.Row.DBCampo("TipoRenglon") = "1" Then
e.Row.Font.Bold = True
e.Row.Cells(0).Text = ""
e.Row.Cells(1).Text = ""
e.Row.Cells(2).Text = ""
e.Row.Cells(3).Text = e.Row.DBCampo("Nombre")
e.Row.Cells(4).Text = ""
e.Row.Cells(5).Text = "Saldo inicial:"
e.Row.Cells(6).Text = e.Row.DBCampo("SaldoInicial").FormatoNumero
e.Row.CssClass = "Totales"
End If
'DETALLE
If e.Row.DBCampo("TipoRenglon") = "2" Then
End If
'SUBTOTAL
If e.Row.DBCampo("TipoRenglon") = "3" Then
e.Row.Font.Bold = True
e.Row.Cells(1).Text = ""
e.Row.Cells(2).Text = ""
e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Right
e.Row.Cells(3).Text = "SubTotal:"
e.Row.Cells(6).Text = ""
e.Row.CssClass = "SubTotales"
End If
'TOTAL
If e.Row.DBCampo("TipoRenglon") = "4" Then
e.Row.Font.Bold = True
e.Row.Cells(0).Text = ""
e.Row.Cells(1).Text = ""
e.Row.Cells(2).Text = ""
e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Right
e.Row.Cells(3).Text = $"Total ({e.Row.DBCampo("Nombre")}):"
e.Row.Cells(6).Text = ""
e.Row.CssClass = "Totales"
End If
End If
End Sub
#End Region
#Region " IMPRIMIR "
#End Region
Protected Sub Imprimir_click(sender As Object, e As EventArgs) Handles Imprimir.Click
FechaInicio = If(TxtFechaDel.Text = "" Or TxtFechaDel.Text = "__/__/____", NowADS(), TxtFechaDel.Text.ToDate)
FechaFin = If(TxtFechaAl.Text = "" Or TxtFechaAl.Text = "__/__/____", NowADS(), TxtFechaAl.Text.ToDate)
DtDatos = DtDatos
ImprimirReporte()
End Sub
Protected Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click
FechaInicio = If(TxtFechaDel.Text = "" Or TxtFechaDel.Text = "__/__/____", NowADS(), TxtFechaDel.Text.ToDate)
FechaFin = If(TxtFechaAl.Text = "" Or TxtFechaAl.Text = "__/__/____", NowADS(), TxtFechaAl.Text.ToDate)
DtDatos = DtDatos
ImprimirReporte("EXCEL")
End Sub
Private Sub ImprimirReporte(Optional Formato As String = "PDF")
Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png")
'Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim lista = New List(Of CrystalParametro)
lista.Add(New CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa))
lista.Add(New CrystalParametro("FechaInicio", FechaInicio.ToString("dd/MM/yyyy")))
lista.Add(New CrystalParametro("FechaFin", FechaFin.ToString("dd/MM/yyyy")))
lista.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual.Nombre))
lista.Add(New CrystalParametro("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", "")))
ImprimirbytesPDF(ImprimirPDFCrystal(Server.MapPath("~/Empresas/Grales/Formatos/LibroMayor.rpt"), DtDatos, lista, "LibroMayor", Formato), "LibroMayor", Formato)
End Sub
End Class

View File

@@ -28,7 +28,8 @@
</div>
<div class="titlefiltros caption">
<div class="row">
<div class="col-md-1 truncate"><asp:Label runat="server" ID="LblFiltroSubProyecto">SubProyecto:</asp:Label></div>
<div class="col-md-1 truncate">
<asp:Label runat="server" ID="LblFiltroSubProyecto">SubProyecto:</asp:Label></div>
<div class="col-md-4">
<asp:DropDownList ID="DdlFiltroSubProyecto" CssClass="form-control select2me" runat="server" AppendDataBoundItems="true" DataTextField="SubProyecto" DataValueField="CveSubProyecto" Width="70%"></asp:DropDownList>
</div>
@@ -89,9 +90,9 @@
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Estatus" HeaderText="Estatus" />
<asp:TemplateField HeaderText="">
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:HyperLink ID="HplDif" runat="server" NavigateUrl='<%# Eval("CveInventarioFisico", "~/Inventarios/RepAnomalias.aspx?CveInventarioFisico={0}") %>' Text="Dif."></asp:HyperLink>
<asp:HyperLink ID="HplDif" runat="server" NavigateUrl='<%# Eval("CveInventarioFisico", "~/Inventarios/RepAnomalias.aspx?CveInventarioFisico={0}") %>' Text="Dif."></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Comandos">
@@ -218,7 +219,7 @@
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvClasificacion" runat="server" GridLines="None" DataKeyNames="CveClasificacion,Clasificacion" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn ScrollAD" data-heightfijo="150" data-height="150" Width="380px" AutoGenerateColumns="False" ToolTip="Listado de Clasificaciones" >
<asp:GridView ID="GvClasificacion" runat="server" GridLines="None" DataKeyNames="CveClasificacion,Clasificacion" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn ScrollAD" data-heightfijo="150" data-height="150" Width="380px" AutoGenerateColumns="False" ToolTip="Listado de Clasificaciones">
<Columns>
<asp:BoundField DataField="Clasificacion" HeaderText="Clasificacion" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Comandos">
@@ -254,8 +255,7 @@
<div class="row">
<div class="col-md-10">
<label for="<%= DdlProductosServicios.ClientID.ToString()%>">Productos:</label>
<ADS:Dropdownlost ID="DdlProductosServicios" CssStyle="width: 95%;" runat="server" DataTextField="PSCodigo" DataValueField="CvePS" >
</ADS:Dropdownlost>
<ADS:Dropdownlost ID="DdlProductosServicios" CssStyle="width: 95%;" runat="server" DataTextField="PSCodigo" DataValueField="CvePS"></ADS:Dropdownlost>
</div>
<div class="col-md-2" style="margin-top: 20px;">
@@ -263,11 +263,22 @@
</div>
</div>
<div class="row" id="DivSelectiva" runat="server" visible="false">
<div class="col-md-10">
<label for="<%= DdlSelectiva.ClientID.ToString()%>">Selectiva:</label><br />
<asp:DropDownList ID="DdlSelectiva" CssClass="form-control select2me" Width="95%" runat="server" DataTextField="Selectiva" DataValueField="CveSelectiva"></asp:DropDownList>
</div>
<div class="col-md-2" style="margin-top: 20px;">
<asp:Button for="DdlSelectiva" ID="BtnSelectiva" runat="server" CssClass="btn btn-primary btn-sm" Text="+" />
</div>
</div>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvPS" runat="server" GridLines="None" DataKeyNames="CvePS" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn ScrollAD" data-heightfijo="150" data-height="150" Width="380px" AutoGenerateColumns="False" EmptyDataText="">
<Columns>
<asp:BoundField DataField="CodigoPS" HeaderText="Productos" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="310px" HeaderStyle-Width="310px"/>
<asp:BoundField DataField="CodigoPS" HeaderText="Productos" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="310px" HeaderStyle-Width="310px" />
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Comandos" ItemStyle-Width="70px" HeaderStyle-Width="70px">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" OnClick="DeleteProductosServicios_Click" CausesValidation="False" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" />
@@ -314,7 +325,7 @@
<asp:BoundField DataField="Clasificacion" HeaderText="Clasificacion" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Comandos">
<ItemTemplate>
<asp:LinkButton ID="LnkEliminarClasificacionExcluida" OnClick="LnkEliminarClasificacionExcluida_Click" runat="server" AlternateText="Eliminar" CausesValidation="False" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" />
<asp:LinkButton ID="LnkEliminarClasificacionExcluida" OnClick="LnkEliminarClasificacionExcluida_Click" runat="server" AlternateText="Eliminar" CausesValidation="False" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
@@ -345,11 +356,10 @@
<div class="row">
<div class="col-md-10">
<label for="<%= DdlPSExcluye.ClientID.ToString()%>">Productos:</label>
<ADS:Dropdownlost ID="DdlPSExcluye" CssStyle="width: 95%;" runat="server" DataTextField="PSCodigo" DataValueField="CvePS" >
</ADS:Dropdownlost>
<ADS:Dropdownlost ID="DdlPSExcluye" CssStyle="width: 95%;" runat="server" DataTextField="PSCodigo" DataValueField="CvePS"></ADS:Dropdownlost>
</div>
<div class="col-md-2" style="margin-top:20px;">
<div class="col-md-2" style="margin-top: 20px;">
<asp:Button for="DdlPSExcluye" ID="BtnAddPSExcluye" runat="server" CssClass="btn btn-primary btn-sm" Text="+" />
</div>
</div>
@@ -390,23 +400,22 @@
<div class="row">
<div class="col-md-10">
<label for="<%= DdlProveedor.ClientID.ToString()%>">Proveedor:</label>
<ADS:Dropdownlost ID="DdlProveedor" CssStyle="width: 95%;" runat="server" DataTextField="RazonSocial" DataValueField="CveProveedor" >
</ADS:Dropdownlost>
<ADS:Dropdownlost ID="DdlProveedor" CssStyle="width: 95%;" runat="server" DataTextField="RazonSocial" DataValueField="CveProveedor"></ADS:Dropdownlost>
</div>
<div class="col-md-2" style="margin-top:20px;">
<div class="col-md-2" style="margin-top: 20px;">
<asp:Button for="DdlProveedor" ID="BtnAgregarProveedor" runat="server" CssClass="btn btn-primary btn-sm" Text="+" />
</div>
</div>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvProveedor" runat="server" GridLines="None" DataKeyNames="CveProveedor,RazonSocial" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn ScrollAD" data-heightfijo="150" data-height="150" Width="380px" AutoGenerateColumns="False" ToolTip="Listado de Proveedores" >
<asp:GridView ID="GvProveedor" runat="server" GridLines="None" DataKeyNames="CveProveedor,RazonSocial" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn ScrollAD" data-heightfijo="150" data-height="150" Width="380px" AutoGenerateColumns="False" ToolTip="Listado de Proveedores">
<Columns>
<asp:BoundField DataField="RazonSocial" HeaderText="Proveedor" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Comandos">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" CausesValidation="False" OnClick="DeleteProveedor_Click" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si"/>
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" CausesValidation="False" OnClick="DeleteProveedor_Click" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
@@ -420,7 +429,7 @@
</div>
</div>
<div class="row" style="border-top: 1px solid #e5e5e5;">
<div class="col-md-12" style="margin-top:15px;">
<div class="col-md-12" style="margin-top: 15px;">
<div class="col-md-6" runat="server" id="divUsuarios" visible="false">
<div class="portlet light xspadding bordered" id="idUsuarios">
<div class="portlet-title">
@@ -438,12 +447,12 @@
<div class="row">
<div class="col-md-10">
<label for="<%= DdlUsuarios.ClientID.ToString()%>">Usuarios:</label>
<asp:DropDownList ID="DdlUsuarios" CssClass="form-control select2me" runat="server" DataTextField="Nombre" DataValueField="CveUsuario" Width="100%">
<asp:DropDownList ID="DdlUsuarios" CssClass="form-control select2me" runat="server" DataTextField="Nombre" DataValueField="CveUsuario" Width="100%">
</asp:DropDownList>
</div>
<div class="col-md-2" style="margin-top:20px;">
<div class="col-md-2" style="margin-top: 20px;">
<asp:Button for="DdlUsuarios" ID="btnAddUsuarios" runat="server" CssClass="btn btn-primary btn-sm" Text="+" />
</div>
</div>
@@ -460,12 +469,12 @@
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Bloqueado">
<ItemTemplate>
<asp:CheckBox ID="chkBloqueado" runat="server" />
<asp:CheckBox ID="chkBloqueado" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Cerrado">
<ItemTemplate>
<asp:LinkButton ID="imgCerrar" runat="server" AlternateText="Cerrar" OnClick="imgCerrar_Click" CausesValidation="False" CssClass="btn black" Text="<i class='fa fa-lock'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" style="padding-left: 7px;padding-bottom: 1px;padding-top: 1px;padding-right: 7px; color:black;"/>
<asp:LinkButton ID="imgCerrar" runat="server" AlternateText="Cerrar" OnClick="imgCerrar_Click" CausesValidation="False" CssClass="btn black" Text="<i class='fa fa-lock'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" Style="padding-left: 7px; padding-bottom: 1px; padding-top: 1px; padding-right: 7px; color: black;" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
@@ -483,11 +492,11 @@
</div>
<div class="col-md-6">
<asp:CheckBox runat="server" ID="chkUsarApp" AutoPostBack="true" Text="Usar en App:"/>
<asp:CheckBox runat="server" ID="chkUsarApp" AutoPostBack="true" Text="Usar en App:" />
</div>
</div>
</div>
<div class="modal-footer">
<asp:UpdatePanel ID="UpFooter" runat="server" UpdateMode="Conditional">

View File

@@ -83,6 +83,11 @@ Partial Class Inventarios_InventarioFisico
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
DivSelectiva.Visible = True
CargaSelectivas()
End If
CargaDdlSubProyectos()
CargaDdlClasificacion()
CargDdlProveedor()
@@ -100,6 +105,17 @@ Partial Class Inventarios_InventarioFisico
End Sub
#Region "CARGAS"
Private Sub CargaSelectivas()
Using ObjPS As New ClsProductosServicios
If ObjPS.GetSelectiva(-1, UsuarioActual.CveEmpresa) Then
DdlSelectiva.DataSource = ObjPS.DtResultados
End If
End Using
DdlSelectiva.DataBind()
DdlSelectiva.Items.Insert(0, New ListItem("Seleccione", "-1"))
End Sub
Private Sub CargaDatos(CveEmpresa As Integer)
Dim Inventario As New ClsInventarios
Dim dt As New DataTable
@@ -261,6 +277,35 @@ Partial Class Inventarios_InventarioFisico
End If
End Sub
Private Sub BtnSelectiva_Click(sender As Object, e As EventArgs) Handles BtnSelectiva.Click
If DdlSelectiva.SelectedValue = "-1" Then
Alert("Tienes seleccionada la opcion 'Seleccione'.", TipoMensaje.MsgInformacion)
GvPS.DataSource = Nothing
GvPS.DataBind()
tDTPS.Rows.Clear()
Else
If tDTPS IsNot Nothing Then
tDTPS.Rows.Clear()
End If
Using ObjPS As New ClsProductosServicios
If ObjPS.GetPSSelectiva(DdlSelectiva.SelectedValue.ToEntero(), UsuarioActual.CveEmpresa) Then
For Each RowPS As DataRow In ObjPS.DtResultados.Rows
Dim Row As DataRow = tDTPS.NewRow
Row("CvePS") = RowPS("CvePS")
Row("CodigoPS") = RowPS("CodigoPS")
tDTPS.Rows.Add(Row)
Next
End If
End Using
GvPS.DataSource = tDTPS
GvPS.DataBind()
UpProductosServicios.Update()
End If
End Sub
Private Sub BtnAddPSExcluye_Click(sender As Object, e As EventArgs) Handles BtnAddPSExcluye.Click
If DdlPSExcluye.SelectedValue = "-1" Then
Alert("Tienes seleccionada la opcion 'Todos'.", TipoMensaje.MsgInformacion)

View File

@@ -54,7 +54,7 @@ Partial Class Inventarios_Default
DivListasPrecios2.Visible = True
End If
If UsuarioActual.CveRol = 1 Then
If UsuarioActual.TienePermisoProceso(387) Then
LnkBsucarSerie.Visible = True
End If

View File

@@ -19,14 +19,25 @@
<li>
<a target="_blank" class="ayuda" href="../Documentacion/DocumentacionInventarios.aspx#RecepcionAlmacen">&nbsp;</a>
</li>
<li>
<asp:HyperLink ID="HlAgregarExcel" NavigateUrl="#" Visible="true" data-toggle="modal" data-target="#DivCargaExcel" runat="server"><i class='fa fa-server'></i> Cargar Excel</asp:HyperLink>
</li>
<%--
<li>
<asp:HyperLink ID="HlAgregarExcel" NavigateUrl="#" Visible="true" data-toggle="modal" data-target="#DivCargaExcel" runat="server"><i class='fa fa-server'></i> Cargar Excel</asp:HyperLink>
</li>
--%>
<asp:UpdatePanel ID="UpAcciones" runat="server" UpdateMode="Conditional" RenderMode="Inline">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkAgregarExcel" Visible="true" OnClick="LnkAgregarExcel_Click" runat="server"><i class='fa fa-server'></i> Cargar Excel</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="uppCargaBitacora" runat="server" UpdateMode="Conditional" RenderMode="Inline">
<ContentTemplate>
<li>
<asp:LinkButton ID="HplCargaBitacora" runat="server" Visible="false" OnClick="HplCargaBitacora_Click" Style="color: #686868;"><i class="fa fa-file-load-o" style="color: #686868;"></i> Cargar Bitácora</asp:LinkButton>
<asp:LinkButton ID="HplCargaBitacora" runat="server" Visible="false" OnClick="HplCargaBitacora_Click" Style="color: #686868;"><i class="fa fa-book" aria-hidden="true"></i> Cargar Bitácora</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>

View File

@@ -7,6 +7,7 @@ Imports System.Text
Imports Extensiones
Imports GemBox.Spreadsheet
Imports Microsoft.Reporting.WebForms
Imports Org.BouncyCastle.Asn1.X509
Partial Class Inventarios_RecepcionAlmacen
Inherits ClsPaginas
@@ -154,12 +155,21 @@ Partial Class Inventarios_RecepcionAlmacen
ViewState("PUSerie") = value
End Set
End Property
Private Property CveConsecSerie As Integer
'Private Property CveConsecSerie As Integer
' Get
' Return CType(ViewState("CveConsecSerie"), Integer)
' End Get
' Set(value As Integer)
' ViewState("CveConsecSerie") = value
' End Set
'End Property
Private Property CveCompraDetalle As Integer
Get
Return CType(ViewState("CveConsecSerie"), Integer)
Return CType(ViewState("CveCompraDetalle"), Integer)
End Get
Set(value As Integer)
ViewState("CveConsecSerie") = value
ViewState("CveCompraDetalle") = value
End Set
End Property
Private Property TotalGV As Decimal
@@ -412,6 +422,11 @@ Partial Class Inventarios_RecepcionAlmacen
End Property
Private Property ArchivoBitacora As String
Get
If ViewState("ArchivoBitacora") Is Nothing Then
ViewState("ArchivoBitacora") = ""
End If
Return CType(ViewState("ArchivoBitacora"), String)
End Get
Set(value As String)
@@ -420,6 +435,10 @@ Partial Class Inventarios_RecepcionAlmacen
End Property
Private Property ArchivoBitacoraDetalle As String
Get
If ViewState("ArchivoBitacoraDetalle") Is Nothing Then
ViewState("ArchivoBitacoraDetalle") = ""
End If
Return CType(ViewState("ArchivoBitacoraDetalle"), String)
End Get
Set(value As String)
@@ -1461,11 +1480,12 @@ Partial Class Inventarios_RecepcionAlmacen
'If e.Row.DBCampo("CveMetodoInventario").ToString = "5" Then
e.Row.FCButton("BtnSerie").Visible = True
e.Row.FCButton("BtnSerie").CommandArgument = String.Format("{0}°{1}°{2}°{3}°{4}°{5}", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveUM"), e.Row.DBCampo("PU"), e.Row.DBCampo("PS"), e.Row.DBCampo("CantidadF"), e.Row.DBCampo("Consec"))
e.Row.FCButton("BtnSerie").CommandArgument = String.Format("{0}°{1}°{2}°{3}°{4}°{5}°{6}", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveUM"), e.Row.DBCampo("PU"), e.Row.DBCampo("PS"), e.Row.DBCampo("CantidadF"), e.Row.DBCampo("Consec"), e.Row.DBCampo("CveCompraDetalle"))
e.Row.FCTextBox("TbCantidadF").Enabled = False
e.Row.FCCheckBox("cbInv").Enabled = False
Dim Contador As Integer = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", e.Row.DataKey("Consec"))).Rows.Count
'Dim Contador As Integer = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", e.Row.DataKey("Consec"))).Rows.Count
Dim Contador As Integer = DtDatosDetalle.FiltraParametros(String.Format("CveCompraDetalle = {0}", e.Row.DataKey("CveCompraDetalle"))).Rows.Count
e.Row.FCTextBox("TbCantidadF").Text = Contador.ToString
'' Empresa Acumuladores
@@ -1617,7 +1637,8 @@ Partial Class Inventarios_RecepcionAlmacen
TdSeriePS.Visible = True
TxtSeriePS.Focus()
CveConsecSerie = Gvr.DataKey("Consec").ToEntero
'CveConsecSerie = Gvr.DataKey("Consec").ToEntero
CveCompraDetalle = Gvr.DataKey("CveCompraDetalle").ToEntero
CvePSSerie = Gvr.DataKey("CvePS").ToEntero
CveUMSerie = Gvr.DataKey("CveUM").ToEntero
Exit Sub
@@ -1717,7 +1738,8 @@ Partial Class Inventarios_RecepcionAlmacen
CvePSSerie = Argumentos(0).ToEntero
CveUMSerie = Argumentos(1).ToEntero
PUSerie = Argumentos(2).ToDecimal
CveConsecSerie = Argumentos(5).ToEntero
'CveConsecSerie = Argumentos(5).ToEntero
CveCompraDetalle = Argumentos(6).ToEntero
CargaSerie(1)
@@ -1732,6 +1754,8 @@ Partial Class Inventarios_RecepcionAlmacen
DtDatosDetalle.Columns.Add("PU", GetType(Decimal))
DtDatosDetalle.Columns.Add("Serie", GetType(String))
DtDatosDetalle.Columns.Add("FechaCaducidad", GetType(String))
DtDatosDetalle.Columns.Add("CveCompraDetalle", GetType(Integer))
End If
End Sub
@@ -1747,11 +1771,13 @@ Partial Class Inventarios_RecepcionAlmacen
'RegistraScript("document.getElementById(""TxtSerie"").focus();")
RegistraScript("$('#DivSerie').modal();", "ModalLote")
GvSerie.DataSource = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie), "Consec DESC")
'GvSerie.DataSource = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie), "Consec DESC")
GvSerie.DataSource = DtDatosDetalle.FiltraParametros(String.Format("CveCompraDetalle = {0}", CveCompraDetalle), "Consec DESC")
GvSerie.DataBind()
'VALIDA QUE SIGA AGREGANDO
If Not DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie)).Rows.Count < LbCantidad.Text.ToEntero Then
'If Not DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie)).Rows.Count < LbCantidad.Text.ToEntero Then
If Not DtDatosDetalle.FiltraParametros(String.Format("CveCompraDetalle = {0}", CveCompraDetalle)).Rows.Count < LbCantidad.Text.ToEntero Then
BtnAgregarPS.Enabled = True
If CerrarCompletado Then
RegistraScript("$('#DivSerie').modal('hide');")
@@ -1764,7 +1790,9 @@ Partial Class Inventarios_RecepcionAlmacen
Dim Contador As Integer = 0
For Each Gvr As GridViewRow In GvInv.Rows
If Gvr.DataKey("CvePS").ToEntero = CvePSSerie Then
Contador = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Gvr.DataKey("Consec"))).Rows.Count
'Contador = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Gvr.DataKey("Consec"))).Rows.Count
Contador = DtDatosDetalle.FiltraParametros(String.Format("CveCompraDetalle = {0}", Gvr.DataKey("CveCompraDetalle"))).Rows.Count
Gvr.FCCheckBox("cbInv").Enabled = False
Gvr.FCTextBox("TbCantidadF").Enabled = False
If DtDatosDetalle IsNot Nothing AndAlso Contador > 0 Then
@@ -1776,7 +1804,8 @@ Partial Class Inventarios_RecepcionAlmacen
End If
End If
Dim Dr As DataRow = DtInv.Select($"Consec = {Gvr.DataKey("Consec")}")(0)
'Dim Dr As DataRow = DtInv.Select($"Consec = {Gvr.DataKey("Consec")}")(0)
Dim Dr As DataRow = DtInv.Select($"CveCompraDetalle = {Gvr.DataKey("CveCompraDetalle")}")(0)
Dr("CantidadSurtidaPantalla") = Gvr.FCTextBox("TbCantidadF").Text.ToDecimal
DtInv.AcceptChanges()
Next
@@ -1810,7 +1839,10 @@ Partial Class Inventarios_RecepcionAlmacen
Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerie).FiltroPrimero("", "PS")
For Each Serie In SeriesArreglo
DtDuplicado = DtDatosDetalle.FiltraParametros($"ConsecId = {CveConsecSerie} AND Serie = '{Serie}'")
'DtDuplicado = DtDatosDetalle.FiltraParametros($"ConsecId = {CveConsecSerie} AND Serie = '{Serie}'")
DtDuplicado = DtDatosDetalle.FiltraParametros($"CveCompraDetalle = {CveCompraDetalle} AND Serie = '{Serie}'")
If DtDuplicado IsNot Nothing AndAlso DtDuplicado.Rows.Count > 0 Then
MensajeAlert.Append($"<br/> El numero de Serie <b>""{Serie}""</b> proporcionado ya se encuentra ingresado.")
TxtSerie.Text = ""
@@ -1836,7 +1868,8 @@ Partial Class Inventarios_RecepcionAlmacen
Dim Index As Integer = 0
Dim Cantidad As Integer = LbCantidad.Text.ToEntero
If CargaMasivaSeries Then Cantidad = DtInv.FiltroPrimeroValor("CantidadF", "Consec = " & CveConsecSerie).ToEntero
'If CargaMasivaSeries Then Cantidad = DtInv.FiltroPrimeroValor("CantidadF", "Consec = " & CveConsecSerie).ToEntero
If CargaMasivaSeries Then Cantidad = DtInv.FiltroPrimeroValor("CantidadF", "CveCompraDetalle = " & CveCompraDetalle).ToEntero
'DtInv
For Each Serie In SeriesArreglo
@@ -1847,7 +1880,8 @@ Partial Class Inventarios_RecepcionAlmacen
If Index > Cantidad Then Exit For
'VALIDA QUE SIGA AGREGANDO
If Not DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie)).Rows.Count < Cantidad Then
'If Not DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie)).Rows.Count < Cantidad Then
If Not DtDatosDetalle.FiltraParametros(String.Format("CveCompraDetalle = {0}", CveCompraDetalle)).Rows.Count < Cantidad Then
MensajeAlert.Append("series cargadas en su totalidad") : Exit For
End If
@@ -1867,7 +1901,8 @@ Partial Class Inventarios_RecepcionAlmacen
End If
End If
Row("ConsecId") = CveConsecSerie
'Row("ConsecId") = CveConsecSerie
Row("CveCompraDetalle") = CveCompraDetalle
Row("Consec") = DtDatosDetalle.Rows.Count + 1
Row("CvePS") = CvePSSerie
Row("CveUM") = CveUMSerie
@@ -1922,6 +1957,10 @@ Partial Class Inventarios_RecepcionAlmacen
Dim dtt As New DataTable
dtt.ReadXml(ArchivoBitacoraDetalle)
DtDatosDetalle = dtt
If Not DtDatosDetalle.Columns.Contains("CveCompraDetalle") Then
DtDatosDetalle.Columns.Add("CveCompraDetalle", GetType(Integer))
DtDatosDetalle.AcceptChanges()
End If
Alert("Registro(s) Recuperados", TipoMensaje.ToastInformacion)
End If
CargaGVInv()
@@ -1975,18 +2014,21 @@ Partial Class Inventarios_RecepcionAlmacen
CvePSSerie = Argumentos(0).ToEntero
CveUMSerie = Argumentos(1).ToEntero
PUSerie = Argumentos(2).ToDecimal
CveConsecSerie = Argumentos(5).ToEntero
'CveConsecSerie = Argumentos(5).ToEntero
CveCompraDetalle = Argumentos(6).ToEntero
CargaLote(1)
End Sub
Private Sub CargaLote(Tipo As Integer, Optional CerrarCompletado As Boolean = False)
RegistraScript("$('#DivLote').modal();", "ModalLote")
GvLote.Columns(2).HeaderText = UsuarioActual.Empresa.Funcionalidad(147)
GvLote.DataSource = DtDatosLoteDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie), "Consec DESC")
'GvLote.DataSource = DtDatosLoteDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie), "Consec DESC")
GvLote.DataSource = DtDatosLoteDetalle.FiltraParametros(String.Format("CveCompraDetalle = {0}", CveCompraDetalle), "Consec DESC")
GvLote.DataBind()
'VALIDA QUE SIGA AGREGANDO
If Not DtDatosLoteDetalle.SUM("Cantidad", String.Format("ConsecId = {0}", CveConsecSerie)) < LbLoteCantidad2.Text.ToDecimal Then
'If Not DtDatosLoteDetalle.SUM("Cantidad", String.Format("ConsecId = {0}", CveConsecSerie)) < LbLoteCantidad2.Text.ToDecimal Then
If Not DtDatosLoteDetalle.SUM("Cantidad", String.Format("CveCompraDetalle = {0}", CveCompraDetalle)) < LbLoteCantidad2.Text.ToDecimal Then
BtnAddPSLote.Enabled = False
If CerrarCompletado Then
RegistraScript("$('#DivLote').modal('hide');")
@@ -1999,7 +2041,9 @@ Partial Class Inventarios_RecepcionAlmacen
Dim Contador As Decimal = 0
For Each Gvr As GridViewRow In GvInv.Rows
If Gvr.DataKey("CvePS").ToEntero = CvePSSerie Then
Contador = DtDatosLoteDetalle.SUMD("Cantidad", String.Format("ConsecId = {0}", Gvr.DataKey("Consec")))
'Contador = DtDatosLoteDetalle.SUMD("Cantidad", String.Format("ConsecId = {0}", Gvr.DataKey("Consec")))
Contador = DtDatosLoteDetalle.SUMD("Cantidad", String.Format("CveCompraDetalle = {0}", Gvr.DataKey("CveCompraDetalle")))
Gvr.FCCheckBox("cbInv").Enabled = False
Gvr.FCTextBox("TbCantidadF").Enabled = False
If DtDatosLoteDetalle IsNot Nothing AndAlso Contador > 0 Then
@@ -2049,7 +2093,8 @@ Partial Class Inventarios_RecepcionAlmacen
Dim DtSeriesNuevas As New DataTable
DtSeriesNuevas.Columns.Add("Serie", GetType(String))
DtDuplicado = DtDatosLoteDetalle.FiltraParametros($"ConsecId = {CveConsecSerie} AND Lote = '{Lote}' ")
'DtDuplicado = DtDatosLoteDetalle.FiltraParametros($"ConsecId = {CveConsecSerie} AND Lote = '{Lote}' ")
DtDuplicado = DtDatosLoteDetalle.FiltraParametros($"CveCompraDetalle = {CveCompraDetalle} AND Lote = '{Lote}' ")
If DtDuplicado IsNot Nothing AndAlso DtDuplicado.Rows.Count > 0 Then
Alert($"<br/> El numero de Lote <b>""{Lote}""</b> proporcionado ya se encuentra ingresado.", TipoMensaje.MsgAdvertencia)
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
@@ -2078,7 +2123,8 @@ Partial Class Inventarios_RecepcionAlmacen
End If
End If
Row("ConsecId") = CveConsecSerie
'Row("ConsecId") = CveConsecSerie
Row("CveCompraDetalle") = CveCompraDetalle
Row("Consec") = DtDatosDetalle.Rows.Count + 1
Row("Cantidad") = CantidadLote
Row("CvePS") = CvePSSerie
@@ -2716,8 +2762,12 @@ Partial Class Inventarios_RecepcionAlmacen
PUExtranjero = DtInv.Rows(gvr.RowIndex)("PUExtranjero").ToString.ToDecimal
'SI FUE POR SERIE LOTE
DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", gvr.DataKey("Consec").ToEntero))
DtDetalleLote = DtDatosLoteDetalle.FiltraParametros(String.Format("ConsecId = {0}", gvr.DataKey("Consec").ToEntero))
'DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", gvr.DataKey("Consec").ToEntero))
'DtDetalleLote = DtDatosLoteDetalle.FiltraParametros(String.Format("ConsecId = {0}", gvr.DataKey("Consec").ToEntero))
DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("CveCompraDetalle = {0}", gvr.DataKey("CveCompraDetalle").ToEntero))
DtDetalleLote = DtDatosLoteDetalle.FiltraParametros(String.Format("CveCompraDetalle = {0}", gvr.DataKey("CveCompraDetalle").ToEntero))
If DtDetalle.Rows.Count > 0 Then
Dim ContDt As Integer = 0
' por redondeo
@@ -3655,7 +3705,9 @@ Partial Class Inventarios_RecepcionAlmacen
ErrorMovInv = True
End Try
If Not ErrorMovInv Then
RenombrarBitacoras()
End If
'FINAL
If Not ErrorMovInv Then
@@ -3759,6 +3811,26 @@ Partial Class Inventarios_RecepcionAlmacen
If ObjContaAC IsNot Nothing Then ObjContaAC.Dispose()
End Sub
Private Sub RenombrarBitacoras()
Dim fechaActual As String = DateTime.Now.ToString("yyyyMMddHHmmss")
Dim fib As New FileInfo(ArchivoBitacora)
Dim fibd As New FileInfo(ArchivoBitacoraDetalle)
If fib.Exists() Then
Dim nuevoNombre As String = Path.Combine(fib.DirectoryName, Path.GetFileNameWithoutExtension(fib.Name) & "_" & fechaActual & ".xml")
fib.MoveTo(nuevoNombre)
End If
If fibd.Exists() Then
Dim nuevoNombreDetalle As String = Path.Combine(fibd.DirectoryName, Path.GetFileNameWithoutExtension(fibd.Name) & "_" & fechaActual & ".xml")
fibd.MoveTo(nuevoNombreDetalle)
End If
End Sub
Private Function GenerarMovimientoAlmacenVenta(CveAlmacen As Integer, CveConceptoAlmacen As Integer, CveVenta As Integer, CveMovimientoRelacionado As Integer, DtDetalle As DataTable, ObjInventario As ClsInventarios, ObjConta As ClsContabilidad, EsContabilizable As Boolean, Modulo As String) As MMovimientoAlmacen
Dim ErrorMovInv As Boolean = False
Dim Retorno As New MMovimientoAlmacen
@@ -4816,7 +4888,7 @@ Partial Class Inventarios_RecepcionAlmacen
Alert("El nombre de la segunda columna debe ser 'Codigo'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(2).ColumnName = "Producto" Then
If Not (dt.Columns(2).ColumnName = "Producto" Or dt.Columns(2).ColumnName = "Producto/Servicio") Then
Alert("El nombre de la tercera columna debe ser 'Producto'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
@@ -4851,7 +4923,8 @@ Partial Class Inventarios_RecepcionAlmacen
Dim CveProducto As Integer = RowPS("CvePS").ToString().ToEntero()
Dim CveUnidadMedida As Integer = RowPS("CveUM").ToString().ToEntero()
CvePSSerie = CveProducto
CveConsecSerie = DtInv.FiltroPrimeroValor("Consec", "CvePS=" & CvePSSerie).ToEntero
'CveConsecSerie = DtInv.FiltroPrimeroValor("Consec", "CvePS=" & CvePSSerie).ToEntero
CveCompraDetalle = DtInv.FiltroPrimeroValor("CveCompraDetalle", "CvePS=" & CvePSSerie).ToEntero
Dim Cantidad As Double = RowExcel("Cantidad").ToString().ToDecimal()
Dim Serie As String = RowExcel("Serie").ToString()
@@ -4875,7 +4948,8 @@ Partial Class Inventarios_RecepcionAlmacen
If Valido Then
CveConsecSerie = RowPS("Consec").ToString.ToEntero
'CveConsecSerie = RowPS("Consec").ToString.ToEntero
CveCompraDetalle = RowPS("CveCompraDetalle").ToString.ToEntero
AgregaSerie(RowExcel("Serie").ToString, 1, False)
'AgregarPS(Cantidad, CveProducto, CveUnidadMedida, Observaciones, CveSeccionAlmacen:=DdlSeccionAlmacen.SelectedValue.ToEntero, SeccionAlmacen:=DdlSeccionAlmacen.SelectedItem.Text, Serie:=If(Not String.IsNullOrEmpty(Serie), Serie, ""), Lote:=Lote, FechaCaducidad:=FechaCaducidad, Limpia:=False)
@@ -4887,7 +4961,7 @@ Partial Class Inventarios_RecepcionAlmacen
Else
RowsNoCargados = RowsNoCargados + 1
ProductosNoCargados.AppendFormat("{0},", RowExcel("Producto").ToString())
ProductosNoCargados.AppendFormat("{0},", RowExcel("Producto/Servicio").ToString())
End If
End If
Next
@@ -4896,12 +4970,20 @@ Partial Class Inventarios_RecepcionAlmacen
Finally
Dim MensajeFinal As New StringBuilder()
If RowsNoCargados = 0 AndAlso RowsCargados > 0 Then
MensajeFinal.Append("Los productos se cargaron correctamente. <br/><br/>")
End If
If RowsCargados > 0 Then
MensajeFinal.Append("Se cargaron <b>" & RowsCargados & "</b> productos correctamente.")
TxtExcel.Text = "[]"
UpConcepto.Update()
RegistraScript("$('#DivCargaExcel').modal('hide');")
End If
If RowsNoCargados > 0 Then
MensajeFinal.Append("No se pudieron cargar <b>" & RowsNoCargados & "</b> productos. <br/>Los siguientes productos no se pudieron cargar: " & ProductosNoCargados.ToString())
End If
@@ -4922,32 +5004,67 @@ Partial Class Inventarios_RecepcionAlmacen
End Sub
Public Sub DescargarFormato()
Dim Directorio As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\Formatos\FormatoRecepcionAlmacen.xlsx"
Dim dtt As New DataTable
dtt = DtInv.Copy()
dtt.Columns.Remove("Cantidad")
dtt.Columns("CantidadF").ColumnName = "Cantidad"
dtt.Columns("PS").ColumnName = "Producto"
dtt.Columns("Codigo").ColumnName = "Código"
Dim PathArchivo As String = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\Formatos\FormatoRecepcionAlmacen.xlsx"
Dim existingcol As New List(Of String) '= {"Cantidad", "Producto", "Código"}
If System.IO.File.Exists(PathArchivo) Then
For Each col As DataColumn In dtt.Columns
If Not col.ColumnName.Contiene("Cantidad", "Producto", "Código") Then
existingcol.Add(col.ColumnName)
End If
Next
Response.Clear()
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
Response.AddHeader("Content-Disposition", "attachment; filename=FormatoRecepcionAlmacen.xlsx")
Response.TransmitFile(Directorio)
Response.End()
For Each colName As String In existingcol
dtt.Columns.Remove(colName)
Next
End If
dtt.Columns("Cantidad").SetOrdinal(0)
dtt.Columns("Código").SetOrdinal(1)
dtt.Columns("Producto").SetOrdinal(2)
dtt.Columns.Add("Serie", GetType(String))
dtt.ExportToExcel("FormatoRecepcionAlmacen.xlsx")
'Dim dtt As New DataTable
'dtt = DtInv.Copy()
'If dtt.Columns.Contains("Cantidad") Then
' dtt.Columns.Remove("Cantidad")
'End If
'If dtt.Columns.Contains("CantidadF") Then
' dtt.Columns("CantidadF").ColumnName = "Cantidad"
'End If
'If dtt.Columns.Contains("PS") Then
' dtt.Columns("PS").ColumnName = "Producto"
'End If
'If dtt.Columns.Contains("Codigo") Then
' dtt.Columns("Codigo").ColumnName = "Código"
'End If
'Dim existingcol As New List(Of String) '= {"Cantidad", "Producto", "Código"}
'For Each col As DataColumn In dtt.Columns
' If Not col.ColumnName.Contiene("Cantidad", "Producto", "Código") Then
' existingcol.Add(col.ColumnName)
' End If
'Next
'For Each colName As String In existingcol
' dtt.Columns.Remove(colName)
'Next
'Try
' dtt.Columns("Cantidad").SetOrdinal(0)
' dtt.Columns("Código").SetOrdinal(1)
' dtt.Columns("Producto").SetOrdinal(2)
'Catch ex As Exception
'End Try
'If Not dtt.Columns.Contains("PS") Then
' dtt.Columns.Add("Serie", GetType(String))
'End If
'dtt.ExportToExcel("FormatoRecepcionAlmacen.xlsx")
End Sub
@@ -4957,7 +5074,7 @@ Partial Class Inventarios_RecepcionAlmacen
'Create a DataTable.
Dim dt As New DataTable()
dt.Columns.AddRange(New DataColumn(9) {New DataColumn("CodBarra", GetType(String)),
dt.Columns.AddRange(New DataColumn(10) {New DataColumn("CodBarra", GetType(String)),
New DataColumn("OVenta", GetType(String)),
New DataColumn("Factura", GetType(String)),
New DataColumn("FechaFac", GetType(String)),
@@ -4966,7 +5083,8 @@ Partial Class Inventarios_RecepcionAlmacen
New DataColumn("Producto", GetType(String)),
New DataColumn("Serie", GetType(String)),'CodigoUnico
New DataColumn("Cantidad", GetType(Integer)),
New DataColumn("Código", GetType(String))})
New DataColumn("Código", GetType(String)),
New DataColumn("CveCompraDetalle", GetType(Integer))})
FolioFactura = FolioFactura.Replace("-", "")
'Read the contents of CSV file.
@@ -5049,5 +5167,10 @@ Partial Class Inventarios_RecepcionAlmacen
End Class
Protected Sub LnkAgregarExcel_Click(sender As Object, e As EventArgs)
TxtExcel.Text = "[]"
UpConcepto.Update()
RegistraScript("$('#DivCargaExcel').modal('show');")
End Sub
End Class

View File

@@ -318,6 +318,7 @@ Partial Class OS_OrdenesServicios
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
'DATOS CLIENTE
CveCliente = 0
NombreCliente = ""
@@ -3535,6 +3536,7 @@ Partial Class OS_OrdenesServicios
ObjFactura.Paciente = TxtPacienteModal.Text.Trim
ObjFactura.Episodio = TxtEpisodioModal.Text.Trim
ObjFactura.Alfa1 = TxtFolioRemisionModal.Text.Trim
ObjFactura.CveAlmacenTraspasoDestino = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveTipoAlmacen:=10).FiltroPrimeroValor("CveAlmacen").ToEntero
ObjFactura.CveVendedor = tCveVendedor
Dim TmpDTMat As New DataTable
@@ -3578,7 +3580,7 @@ Partial Class OS_OrdenesServicios
If ProcesoOK Then
ObjFactura.CalculaTotales()
Dim Resp As New Modelos.Factura.MMensajeFactura
Resp = ObjFactura.EmitirFactura(False, Transac:=TransaccionSQL)
Resp = ObjFactura.EmitirFactura(False, Transac:=TransaccionSQL, Modulo:="OS/Remision")
If Resp.CveVenta > 0 Then
Respuesta.CveVenta = Resp.CveVenta

View File

@@ -468,9 +468,10 @@
<div class="col-md-12" >
<asp:GridView ID="GvPS" CssClass="table table-striped table-hover Widthall mysmallbtn" GridLines="None" runat="server" AutoGenerateColumns="False" DataKeyNames="CvePS" OnRowDataBound="GvPS_RowDataBound" >
<Columns>
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" ItemStyle-Width="60px" DataFormatString="{0:#,###.##}" />
<asp:BoundField HeaderText="Solicitado" DataField="CantidadSolicitada" ItemStyle-Width="60px" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="Entregado" DataField="Cantidad" ItemStyle-Width="60px" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="Producto" DataField="PS" />
<asp:BoundField HeaderText="Utilizado" DataField="CantidadRemision" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Utilizado" DataField="CantidadRemision" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Center" />
</Columns>
</asp:GridView>
</div>

View File

@@ -609,18 +609,24 @@ Partial Class OS_RepServiciosMedicos
Dim tCve As Integer = ObjOS.CveVenta 'busca la remisión
If tCve <= 0 Then tCve = ObjOS.CveCotizacion 'sino hay remisión toma el pedido
If tCve > 0 Then
'Dim objv As New ClsVentas
Dim dttps As New DataTable
If ObjOS.GetDetalleMateriales(-1, CveOsConsultar) Then
dttps = ObjOS.DtResultados
End If
'If objv.GetVentaDetalle(tCve) Then
' dttps = objv.DtResultados
'End If
'objv.Dispose()
GvPS.DataSource = dttps
GvPS.DataBind()
'sino hay información, cargamos los productos a surtir
'If dttps IsNot Nothing AndAlso dttps.Rows.Count > 0 AndAlso ObjOS.CveCotizacion > 0 Then
' Dim objv As New ClsVentas
' If objv.GetVentaDetalle(tCve) Then
' dttps = objv.DtResultados
' End If
' objv.Dispose()
'End If
End If
Dim TipoEstatus As Integer = 0
TipoEstatus = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("TipoEstatus", String.Format("CveEstatusOrdenServicio = {0}", ObjOS.CveEstatusOrdenServicio), "CveEstatusOrdenServicio ASC").ToEntero

85
Ventas/CatSelectivas.aspx Normal file
View File

@@ -0,0 +1,85 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="CatSelectivas.aspx.vb" Inherits="Ventas_CatSelectivas" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Catálogo de selectivas
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel runat="server" ID="UpAgregar">
<ContentTemplate>
<li>
<asp:LinkButton runat="server" ID="LnkAgregar" data-toggle="tooltip" data-placement="left" title="Agregar un motivo" Text="<i class='fa fa-plus'></i>Agregar selectiva" OnClick="LnkAgregar_Click"></asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel runat="server" ID="UpDatos" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div class="col-md-12">
<div class="portlet light ">
<div class="portlet-body">
<div class="row" style="margin-left: 0px; margin-top: 5px; margin-bottom: 5px; text-align: right">
<div style="margin-right: 15px">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
</div>
<asp:GridView ID="GvDatos" runat="server" GridLines="None" Width="100%" DataKeyNames="CveSelectiva,Selectiva" CssClass=" table table-striped table-advance table-hover Widthall ScrollAD mysmallbtn" data-sort="true" BorderWidth="1" BorderColor="#D3D3D3" CellSpacing="0" AutoGenerateColumns="False" EmptyDataText="No se encontraron registros" OnRowDeleting="GvDatos_RowDeleting">
<Columns>
<asp:BoundField DataField="Selectiva" HeaderText="Selectiva" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="50%" />
<asp:BoundField DataField="Usuario" HeaderText="Usuario" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="20%" />
<asp:BoundField DataField="FechaIng" DataFormatString="{0:d}" HeaderText="Fecha" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="15%" />
<asp:TemplateField HeaderText="Acciones" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="15%">
<ItemTemplate>
<asp:LinkButton ID="imgE" runat="server" OnClick="imgE_Click" AlternateText="Editar" CommandArgument='<%# Eval("CveSelectiva")%>' CausesValidation="False" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" CausesValidation="False" CommandName="Delete" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Desea eliminar este registro?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div id="DivDatos" class="modal ADS fade" role="dialog">
<div class="modal-dialog" style="width: 450px;">
<asp:UpdatePanel runat="server" class="modal-content" ID="UpModal" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">
<asp:Literal runat="server">Selectiva</asp:Literal></h4>
</div>
<div class="modal-body">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtSelectiva" CssClass="form-control " runat="server" MaxLength="50" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVMotivo" runat="server" ControlToValidate="TxtSelectiva" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Selectiva''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<label for="TxtSelectiva">Selectiva:</label>
<i></i>
</div>
</div>
<br />
<div class="modal-footer">
<asp:Button ID="BtnGuardar" runat="server" class="btn btn-success" Text="Guardar" ValidationGroup="GrpGuardar" OnClick="BtnGuardar_Click" />
<button id="Button3" runat="server" type="button" class="btn default" data-dismiss="modal">Cancelar</button>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,91 @@

Option Explicit On
Option Strict On
Imports Extensiones
Partial Class Ventas_CatSelectivas
Inherits ClsPaginas
Private Property CveSelectiva As Integer
Get
Return (IfNull(ViewState("CveSelectiva"), "-1", ViewState("CveSelectiva"))).ToString().ToEntero()
End Get
Set(value As Integer)
ViewState("CveSelectiva") = value
End Set
End Property
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
CargaDatos()
End If
End Sub
Private Sub CargaDatos()
LimpiaDatos()
Dim ObjGral As New ClsProductosServicios()
If ObjGral.GetSelectiva(-1, UsuarioActual.CveEmpresa) Then
GvDatos.DataSource = ObjGral.DtResultados.Copy()
End If
ObjGral.Dispose()
GvDatos.DataBind()
UpDatos.Update()
End Sub
Protected Sub GvDatos_RowDeleting(sender As Object, e As GridViewDeleteEventArgs)
Dim GvRow As GridViewRow = GvDatos.Rows(e.RowIndex)
CveSelectiva = GvRow.DataKey("CveSelectiva").ToEntero()
Using ObjVentas As New ClsProductosServicios
If ObjVentas.RemoveSelectiva(CveSelectiva, UsuarioActual.CveEmpresa) Then
Alert("Se eliminó correctamente")
End If
End Using
CargaDatos()
End Sub
Protected Sub imgE_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
CveSelectiva = GvRow.DataKey("CveSelectiva").ToEntero()
TxtSelectiva.Text = GvRow.DataKey("Selectiva")
UpModal.Update()
RegistraScript("$('#DivDatos').modal('show');")
End Sub
Private Sub LimpiaDatos()
CveSelectiva = -1
TxtSelectiva.Text = ""
End Sub
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs)
Dim ObjVentas As New ClsProductosServicios
If CveSelectiva = -1 Then
If ObjVentas.AddSelectiva(TxtSelectiva.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
Alert("La selectiva se agrego correctamente")
End If
Else
If ObjVentas.UpdateSelectiva(CveSelectiva, TxtSelectiva.Text, UsuarioActual.CveEmpresa) Then
Alert("La selectiva se actualizó correctamente")
End If
End If
ObjVentas.Dispose()
RegistraScript("$('#DivDatos').modal('hide');")
CargaDatos()
End Sub
Protected Sub LnkAgregar_Click(sender As Object, e As EventArgs)
LimpiaDatos()
RegistraScript("$('#DivDatos').modal('show');")
End Sub
End Class

View File

@@ -254,6 +254,12 @@
<label for="<%= DdlMarca.ClientID.ToString()%>">Marca:</label>
<i></i>
</div>
<div runat="server" id="DivSelectiva" visible="false" class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlSelectiva" CssClass="form-control input-sm select2me" runat="server" AppendDataBoundItems="true" AutoPostBack="false" CausesValidation="true" DataTextField="Selectiva" DataValueField="CveSelectiva" Width="350px" Enabled="true">
</asp:DropDownList>
<label for="<%= DdlSelectiva.ClientID.ToString()%>">Selectiva:</label>
<i></i>
</div>
<div class="form-group form-md-line-input input-iconright">
<label>Aplica para Venta:</label>
<asp:CheckBox ID="ChkAplicaParaVenta" CssClass="make-switchsd" data-size="small" runat="server" Checked="True" />
@@ -276,7 +282,6 @@
<label class="truncate" style="padding-left: 1px;" for="<%= TxtPorMinimoUtilidad.ClientID.ToString()%>">% Minimo de utilidad:</label>
<i></i>
</div>
<div class="row">
<div class=" col-md-12">
<div runat="server" id="DivCompuesto" class="form-group form-md-line-input input-iconright" visible="false">
@@ -350,6 +355,7 @@
</div>
</div>
</div>
</div>
</div>

View File

@@ -450,6 +450,9 @@ Partial Class ProductosyServicios
DivPSAdicionales.Visible = True
DivTipoAdicional.Visible = True
DivPorMinimoUtilidad.Visible = True
DivSelectiva.Visible = True
CargaSelectivas()
End If
CvePSAdicional = -1
@@ -473,7 +476,15 @@ Partial Class ProductosyServicios
End If
End Sub
Private Sub CargaSelectivas()
Using ObjPS As New ClsProductosServicios
If ObjPS.GetSelectiva(-1, UsuarioActual.CveEmpresa) Then
DdlSelectiva.DataSource = ObjPS.DtResultados
End If
End Using
DdlSelectiva.DataBind()
DdlSelectiva.Items.Insert(0, New ListItem("-", "-1"))
End Sub
Private Sub CargaCombosPSComplementos()
DdlClaveSectorCOFEPRIS.DataSource = GlobalDT_SAT_CP_SectorCOFEPRIS
@@ -1152,6 +1163,7 @@ Partial Class ProductosyServicios
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
TxtPorMinimoUtilidad.Text = ObjProductosServicios.DtResultados.Rows(0)("PorcentajeMinimoUtilidad").ToString
DdlSelectiva.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveSelectiva").ToString)
End If
Else
Alert("El Producto o Servicio Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia)
@@ -1550,7 +1562,7 @@ Partial Class ProductosyServicios
CveObjetoImpuesto:=DdlObjetoImpuesto.SelectedValue.ToEntero, Litraje:=TxtLitraje.Text.ToDecimal, RegistroRSCO:=TxtRegistroRSCO.Text, FechaVigenciaRSCO:=TxtFechaVigenciaRSCO.Text.ToDate, VigenciaIndeterminadaRSCO:=ChkFechaIndeterminadaRSCO.Checked,
NombreComercial:=TxtNombreComercial.Text.Trim, NotasAdicionales:=TxtEcommerceNota.Text.Trim, EcommerceEtiquetas:=TxtEcommerceEtiquetas.Text.Trim.Replace(".", ""), EcommercePrecio:=TxtEcommercePrecio.Text.Trim.ToDecimal,
CveClasificacionEcommerce:=DdlEcommerceClasificacion.SelectedValue.ToEntero, EcommerceCantidad:=TxtEcommerceCantidad.Text.Trim.ToDecimal, CodigoAlterno:=TxtCodigoAlterno.Text.Trim, PSAlterno:=TxtPSAlterno.Text.Trim, ProductoExhibicion:=ChkPSExhibicion.Checked,
PorcentajeMinimoUtilidad:=TxtPorMinimoUtilidad.Text.ToDecimal()) > 0 Then
PorcentajeMinimoUtilidad:=TxtPorMinimoUtilidad.Text.ToDecimal(), CveSelectiva:=DdlSelectiva.SelectedValue.ToEntero()) > 0 Then
ViewState("CvePS") = ObjProductosServicios.CvePS
For Each GVR As GridViewRow In GvImpuestosLocales.Rows
If GVR.FCCheckBox("ChkDeduccion").Checked Then
@@ -1624,7 +1636,7 @@ Partial Class ProductosyServicios
RegistroRSCO:=TxtRegistroRSCO.Text, FechaVigenciaRSCO:=TxtFechaVigenciaRSCO.Text.ToDate, VigenciaIndeterminadaRSCO:=ChkFechaIndeterminadaRSCO.Checked,
NombreComercial:=TxtNombreComercial.Text.Trim, NotasAdicionales:=TxtEcommerceNota.Text.Trim, EcommerceEtiquetas:=TxtEcommerceEtiquetas.Text.Trim.Replace(".", ""), ActivoEcommerce:=ChkActivoEcommerce.Checked,
EcommercePrecio:=TxtEcommercePrecio.Text.Trim.ToDecimal, CveClasificacionEcommerce:=DdlEcommerceClasificacion.SelectedValue.ToEntero, EcommerceCantidad:=TxtEcommerceCantidad.Text.Trim.ToDecimal,
CodigoAlterno:=TxtCodigoAlterno.Text.Trim, PSAlterno:=TxtPSAlterno.Text.Trim, ProductoExhibicion:=ChkPSExhibicion.Checked, PorcentajeMinimoUtilidad:=TxtPorMinimoUtilidad.Text.ToDecimal()) Then
CodigoAlterno:=TxtCodigoAlterno.Text.Trim, PSAlterno:=TxtPSAlterno.Text.Trim, ProductoExhibicion:=ChkPSExhibicion.Checked, PorcentajeMinimoUtilidad:=TxtPorMinimoUtilidad.Text.ToDecimal(), CveSelectiva:=DdlSelectiva.SelectedValue.ToEntero()) Then
If Not ObjProductosServicios.LimpiaImpuestosLocales(CvePS) Then
TieneError = True

View File

@@ -158,7 +158,7 @@ Partial Class Ventas_Promociones
PermisoAutorizPromocionPorcentaje = UsuarioActual.TienePermisoProceso(386)
EmpresaFnc382 = If(UsuarioActual.Empresa.Funcionalidad(382) = "1", True, False) 'Grupo díaz
EmpresaFnc382 = True ''Para pruebas
'EmpresaFnc382 = True ''Para pruebas
If EmpresaFnc382 Then
DVModalClasificacion.Visible = False
@@ -1474,6 +1474,8 @@ Partial Class Ventas_Promociones
LblUltimoCosto.Text = DTPSUltimoCosto.FiltroPrimeroValor("UltimoCosto", "").FormatoNumero(4)
LblCostoPromedio.Text = DTPSUltimoCosto.FiltroPrimeroValor("CostoPromedio", "").FormatoNumero(4)
LbPUActual.Text = DTPSUltimoCosto.FiltroPrimeroValor("Importe", "").FormatoNumero(4)
UpAgregar.Update()
End Sub

View File

@@ -56,6 +56,9 @@
<li>
<asp:LinkButton ID="LnkVerGrafica" OnClick="LnkVerGrafica_Click" runat="server">Ver Grafica</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkModalPorcentajes" OnClick="LnkModalPorcentajes_Click" runat="server" Visible="false"><i class="fa fa-list" aria-hidden="true"></i> Consultar porcentajes</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
<li>
@@ -275,6 +278,106 @@
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<div id="DivModalPorcetajes" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog modal-lg" runat="server" ID="UpModalPorcentajes" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content" style="width:700px!important">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">
<asp:Label ID="LblModalTituloPorcentajes" runat="server" ClientIDMode="Static" Text="">Consulta Porcentajes</asp:Label>
</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-3">
<div class="form-group form-md-line-input input-iconright date date-picker date date-picker" style="min-width: 135px; margin-top: -10px !important;">
<label for="<%= TxtModalFechaInicio.ClientID.ToString()%>" style="color: #888888;">Fecha Inicio: </label>
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;">
<asp:TextBox ID="TxtModalFechaInicio" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" Width="100px"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="LnkTxtModalFechaInicio" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="METxtModalFechaInicio" runat="server" TargetControlID="TxtModalFechaInicio" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CETxtModalFechaInicio" TargetControlID="TxtModalFechaInicio" PopupButtonID="LnkTxtModalFechaInicio" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RfvTxtModalFechaInicio" CssClass="help-block errorimput" runat="server" ControlToValidate="TxtModalFechaInicio" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Inicio''</b> es necesario, por favor ingréselo." ValidationGroup="GrpModalPorcentaje"></asp:RequiredFieldValidator>
</div>
</div>
<div class="col-md-3">
<div class="form-group form-md-line-input input-iconright date date-picker date date-picker" style="min-width: 135px; margin-top: -10px !important;">
<label for="<%= TxtModalFechaFin.ClientID.ToString()%>" style="color: #888888;">Fecha Fin: </label>
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;">
<asp:TextBox ID="TxtModalFechaFin" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" Width="100px"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="LnkTxtModalFechaFin" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="METxtModalFechaFin" runat="server" TargetControlID="TxtModalFechaFin" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CETxtModalFechaFin" TargetControlID="TxtModalFechaFin" PopupButtonID="LnkTxtModalFechaFin" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RfvLnkTxtModalFechaFin" CssClass="help-block errorimput" runat="server" ControlToValidate="TxtModalFechaFin" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Fin''</b> es necesario, por favor ingréselo." ValidationGroup="GrpModalPorcentaje"></asp:RequiredFieldValidator>
</div>
</div>
<div class="col-md-3">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtModalPorcentaje" runat="server" CausesValidation="true" CssClass="form-control" MaxLength="13" Text="5" Enabled="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvTxtModalPorcentaje" CssClass="help-block errorimput" runat="server" ControlToValidate="TxtModalPorcentaje" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Porcentaje''</b> es necesario, por favor ingréselo." ValidationGroup="GrpModalPorcentaje"></asp:RequiredFieldValidator>
<ajax:FilteredTextBoxExtender ID="FIETTxtModalPorcentaje" TargetControlID="TxtModalPorcentaje" FilterType="Numbers,Custom" ValidChars="-" runat="server" />
<label for="<%= TxtModalPorcentaje.ClientID.ToString()%>">Porcentaje Menor a:</label>
</div>
</div>
<div class="col-md-3">
<asp:Button runat="server" ID="BtnModalConsultaPorcentaje" CssClass="btn btn-primary" Text="Consultar" CausesValidation="true" ValidationGroup="GrpModalPorcentaje" OnClick="BtnModalConsultaPorcentaje_Click" />
</div>
</div>
<div class="row">
<div class="col-md-12" style="height:10px!important"></div>
</div>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvPorcentajes" runat="server" AutoGenerateColumns="False" EmptyDataText="No se encontraron Ventas Utilidad con los filtros especificados"
CssClass="table table-advance table-hover Widthall ScrollAD" data-sort="true" GridLines="None" OnRowDataBound="GvPorcentajes_RowDataBound" >
<Columns>
<asp:BoundField ItemStyle-HorizontalAlign="Left" HeaderText="SubProyecto" DataField="SubProyecto" ItemStyle-Width="200px" />
<asp:HyperLinkField ItemStyle-HorizontalAlign="Center" HeaderText="Serie Folio" DataTextField="SerieFolio" DataTextFormatString="{0}" Target="_blank"
DataNavigateUrlFields="CveVenta"
DataNavigateUrlFormatString="Ventas.aspx?CveVenta={0}" />
<asp:BoundField ItemStyle-HorizontalAlign="Center" HeaderText="Fecha" DataField="FechaVenta" DataFormatString="{0:d}" ItemStyle-Width="100px" />
<asp:BoundField ItemStyle-HorizontalAlign="Right" HeaderText="SubTotal" DataField="SubTotal" DataFormatString="{0:N}" ItemStyle-Width="100px" />
<asp:BoundField ItemStyle-HorizontalAlign="Right" HeaderText="Costo" DataField="Costo" DataFormatString="{0:N}" ItemStyle-Width="100px" />
<asp:BoundField ItemStyle-HorizontalAlign="Right" HeaderText="% Neto" DataField="PorNeto" DataFormatString="{0:N}" ItemStyle-Width="100px" />
</Columns>
</asp:GridView>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div id="DivModalGrafica" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog modal-lg" runat="server" ID="UPModalProd" UpdateMode="Conditional">
<ContentTemplate>
@@ -288,18 +391,20 @@
<div class="modal-body">
<div class="row">
<label class="col-md-1 truncate">Ver:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlVer" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DdlVer_SelectedIndexChanged" AppendDataBoundItems="true" Class="table-group-action-input form-control input-inline input-small input-sm select2me">
<asp:ListItem Selected="True" Text="Neto" Value="1"></asp:ListItem>
<asp:ListItem Text="Rentabilidad" Value="2"></asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1 truncate">Ver:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlVer" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DdlVer_SelectedIndexChanged" AppendDataBoundItems="true" Class="table-group-action-input form-control input-inline input-small input-sm select2me">
<asp:ListItem Selected="True" Text="Neto" Value="1"></asp:ListItem>
<asp:ListItem Text="Rentabilidad" Value="2"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
<br />
<br />
<div id="chartdiv"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">Cerrar</button>
</div>
@@ -307,6 +412,10 @@
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script src="https://www.amcharts.com/lib/3/amcharts.js"></script>

View File

@@ -32,19 +32,37 @@ Partial Class Ventas_RepVentasUtilidadPadre
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
'If UsuarioActual.Empresa.Funcionalidad(382) <> "1" Then
' GvDatos.Columns(3).Visible = False
' GvDatos.Columns(5).Visible = False
'End If
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
LnkModalPorcentajes.Visible = True
End If
CargaCombos()
End If
End Sub
Private Property SubProyectoConf As String
Get
If ViewState("SubProyectoConf") Is Nothing Then
ViewState("SubProyectoConf") = ""
End If
Return ViewState("SubProyectoConf").ToString
End Get
Set(value As String)
ViewState("SubProyectoConf") = value
End Set
End Property
#Region " INICIALIZA VALORES "
Private Sub CargaCombos()
TxtModalFechaInicio.Text = NowADS().FirstDayOfMonth.ToShortDateString
TxtModalFechaFin.Text = NowADS().LastDayOfMonth.ToShortDateString
txtFechaI.Text = NowADS().FirstDayOfMonth.ToShortDateString
txtFechaF.Text = NowADS().LastDayOfMonth.ToShortDateString
@@ -108,6 +126,12 @@ Partial Class Ventas_RepVentasUtilidadPadre
LblNeto.Text = "0"
LblPorNeto.Text = "0"
Dim LblSubProyectoConf As New Label
CargarCentrosDeCosto(Nothing, Nothing, Nothing, LblSubProyectoConf)
SubProyectoConf = LblSubProyectoConf.Text
End Sub
Protected Sub DdlCategoria_SelectedIndexChanged(sender As Object, e As EventArgs)
@@ -315,4 +339,42 @@ Partial Class Ventas_RepVentasUtilidadPadre
#End Region
Protected Sub LnkModalPorcentajes_Click(sender As Object, e As EventArgs)
GvPorcentajes.DataSource = Nothing
GvPorcentajes.DataBind()
UpModalPorcentajes.Update()
RegistraScript("$('#DivModalPorcetajes').modal(`show`);")
End Sub
Protected Sub BtnModalConsultaPorcentaje_Click(sender As Object, e As EventArgs)
Dim ObjVentas As New ClsVentas()
Dim FechaI As Date = TxtModalFechaInicio.Text.ToDate
Dim FechaF As Date = TxtModalFechaFin.Text.ToDate
If TxtModalFechaInicio.Text = "" Then FechaI = MinFecha
If TxtModalFechaFin.Text = "" Then FechaF = MaxFecha
If ObjVentas.GetReporteVentasUtilidad("-1", -1, "-1", FechaI, FechaF, UsuarioActual.CveEmpresa, -1, -1, -1, -1, -1) Then
GvPorcentajes.DataSource = ObjVentas.DtResultados.FiltraParametros($" CveVenta > 0 AND PorNeto <= {TxtModalPorcentaje.Text.ToDecimal} AND TipoDocto = 'Ing' AND CveEstatusFactura IN(2,3) ")
End If
ObjVentas.Dispose()
GvPorcentajes.DataBind()
ObjVentas.Dispose()
UpModalPorcentajes.Update()
End Sub
Protected Sub GvPorcentajes_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.Header Then
e.Row.Cells(0).Text = SubProyectoConf
End If
End Sub
End Class

View File

@@ -9457,7 +9457,7 @@ Partial Class Ventas
End If
'SI SE ELIMINA EL LUBRICANTE, ELIMINAR LOS FILTROS CON PROMOCION
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso Not ClienteEsDistribuidor Then
If TmpDT.Rows(e.RowIndex)("CveClasificacion").ToString().ToString().Contiene("20516") Then
Dim RowsFiltros = TmpDT.Select("CveClasificacion IN(20515) AND Descuento > 0")
For Each Row As DataRow In RowsFiltros
@@ -19830,15 +19830,17 @@ Partial Class Ventas
End Sub
Private Sub CalculaPSPromocionFiltrosLubricantes(ByRef RowEdit As DataRow)
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso Not ClienteEsDistribuidor Then
Dim CantidadMinValidaPromoFiltro As Decimal = 4
Dim CantidadMinValidaPromoLubricantes As Decimal = 5
Dim CantidadDescuento As Decimal = 0
'Dim AgregaDescuentos As Boolean = False
'DESCUENTO EN LUBRICANTES
If RowEdit IsNot Nothing AndAlso RowEdit("CveClasificacion").ToString().Contiene("20516") Then
Dim Cantidad As Decimal = RowEdit("Cantidad").ToString().ToDecimal()
'CALCULA LA CANTIDAD DE DESCUENTO, REDONDEO HACIA ABAJO
Dim CantidadDescuento As Decimal = Math.DivRem(Cantidad.ToString().ToEntero(), CantidadMinValidaPromoLubricantes.ToString().ToEntero(), 1).ToString().ToDecimal()
CantidadDescuento = Math.DivRem(Cantidad.ToString().ToEntero(), CantidadMinValidaPromoLubricantes.ToString().ToEntero(), 1).ToString().ToDecimal()
Dim Descuentos = CantidadDescuento * RowEdit("PU").ToString().ToDecimal()
@@ -19864,6 +19866,9 @@ Partial Class Ventas
Next
End If
'AGREGA LOS DESCUENTOS ADICIONALES
'AgregaDescuentos = True
End If
' DESCUENTO EN FILTROS
@@ -19875,7 +19880,7 @@ Partial Class Ventas
'SI HAY LUBRICANTES, 1 FILTRO DEBE SER GRATIS
If TotalLubricantes >= CantidadMinValidaPromoFiltro Then
'CALCULA LA CANTIDAD DE DESCUENTO, REDONDEO HACIA ABAJO
Dim CantidadDescuento As Decimal = Math.DivRem(TotalLubricantes.ToString().ToEntero(), CantidadMinValidaPromoFiltro.ToString().ToEntero(), 1).ToString().ToDecimal()
CantidadDescuento = Math.DivRem(TotalLubricantes.ToString().ToEntero(), CantidadMinValidaPromoFiltro.ToString().ToEntero(), 1).ToString().ToDecimal()
'VERIFICA QUE AUN SE PUEDA APLICAR DESCUENTO
If TotalFiltrosDescuento < CantidadDescuento Then
@@ -19901,12 +19906,36 @@ Partial Class Ventas
RowEdit("Total") = (Cantidad * PU)
RowEdit("TotalImporte") = (Cantidad * PU).RoundSQL(NumeroDecimales)
RowEdit("TotalConImpuestos") = (RowEdit("Total").ToString().ToDecimal() - RowEdit("Descuento").ToString().ToDecimal() + RowEdit("ImporteIVA").ToString().ToDecimal()).RoundSQL(2)
'AGREGA LOS DESCUENTOS ADICIONALES
'AgregaDescuentos = True
End If
End If
End If
'VERIFICA SI APLICAN OTROS DESCUENTOS
'If AgregaDescuentos Then
' Dim ObjDescuento As Modelos.VentaDescuentos = CalcularDescuentos(RowEdit("CvePS").ToString().ToEntero(), RowEdit("Cantidad").ToString().ToDecimal(), RowEdit("PU").ToString().ToDecimal())
' If ObjDescuento.ImporteDescuento > 0 AndAlso Not ObjDescuento.EsPUModificado Then
' Dim Cantidad As Decimal = RowEdit("Cantidad").ToString().ToDecimal()
' Dim PU As Decimal = RowEdit("PU").ToString().ToDecimal()
' Dim Descuentos = RowEdit("Descuento").ToString().ToDecimal() + ObjDescuento.ImporteDescuento
' If Descuentos < (Cantidad * PU) Then
' Dim TotalCalculableImpuestos As Decimal = ((Cantidad * PU) - (Descuentos))
' Dim TotalCalculableImpuestosIVA As Decimal = 0
' TotalCalculableImpuestosIVA = TotalCalculableImpuestos * (1 + RowEdit("PorcentajeIEPS").ToString().ToDecimal)
' RowEdit("Descuento") = Descuentos
' RowEdit("ImporteIVA") = (RowEdit("PorcentajeIVA").ToString().ToDecimal * TotalCalculableImpuestosIVA).RoundSQL(NumeroDecimales)
' RowEdit("TotalConImpuestos") = (RowEdit("Total").ToString().ToDecimal() - RowEdit("Descuento").ToString().ToDecimal() + RowEdit("ImporteIVA").ToString().ToDecimal()).RoundSQL(2)
' End If
' End If
'End If
End If
End Sub