prepolizas negativas auxiliar compras

This commit is contained in:
Rakcsle Supertramp
2019-08-22 19:42:47 -07:00
15 changed files with 42110 additions and 41843 deletions

View File

@@ -2164,10 +2164,10 @@ Public Class ClsCompras
End Try
Return Retorno
End Function
End Function
#End Region
#Region " DEVOLUCIONES COMPRAS - IPP FEBRERO 2018 "
Public Function ComprasDetalleDevolucionesAdd(CveCompraDetalle As Integer, CveCompraNC As Integer, Cantidad As Double, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False

View File

@@ -25,11 +25,11 @@ Public Class ClsInventarios
End Function
Public Sub RollBack()
SqlTransacc.Rollback()
If SqlTransacc.Connection IsNot Nothing Then SqlTransacc.Rollback()
End Sub
Public Sub Commit()
SqlTransacc.Commit()
If SqlTransacc.Connection IsNot Nothing Then SqlTransacc.Commit()
End Sub
#Region " PROPIEDADES "

View File

@@ -2681,7 +2681,7 @@ Namespace Modelos
CveCuentaContabilizacion = 0
End If
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, CveSubProyecto:=CveSubProyectoContabilizar, PorcentajeImpuesto:=PorcentajeImpuesto) Then
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, CveSubProyecto:=CveSubProyectoContabilizar, PorcentajeImpuesto:=PorcentajeImpuesto, TipoCambio:=tipoCambio) Then
ErrorPrepoliza = True
Else
ObjFactura.SeGuardoPrePoliza = True
@@ -2750,8 +2750,8 @@ Namespace Modelos
If idCuentaContabilizacion > 0 Then
If ObjConta.ContabilizarPrePoliza(ObjFactura.CvePrePoliza, ObjFactura.CveUsuario, UsuarioActual.Empresa, ObjConta:=objContPaqi) Then
Else
ErrorList.Add("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico")
ErrorPrepoliza = True
'ErrorList.Add("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico")
'ErrorPrepoliza = True
End If
Else
ErrorList.Add(String.Format("Falta asignación de las siguientes cuentas contables: {0}", CuentasContablesInvalidas))

View File

@@ -727,8 +727,8 @@ Partial Class Bancos_IE
End If
End If
End Sub
End Sub
#Region " CARGA DATOS "
Private Sub CargaDatos()
Dim ObjIE As New ClsBancos()
@@ -3803,7 +3803,7 @@ Partial Class Bancos_IE
Banc.IniciaTransacSQL()
Dim ObjAC As ClsContPAQi = Nothing
If UsuarioActual.Empresa.UsaAC Then
If UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.UsaContabilidad Then
ObjAC = New ClsContPAQi(UsuarioActual.Empresa)
ObjAC.IniciaTransacSQL()
End If
@@ -3814,7 +3814,7 @@ Partial Class Bancos_IE
Dim IdPolizaNueva = -1
Dim FolioPolizaNueva = -1
If (IDPoliza > 0 AndAlso UsuarioActual.Empresa.UsaAC) Then
If (IDPoliza > 0 AndAlso (UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.UsaContabilidad)) Then
If ObjAC Is Nothing Then
ErrorCancelar = True
@@ -4013,7 +4013,7 @@ Partial Class Bancos_IE
Dim ObjConta As New ClsContabilidad(Banc.IniciaTransacSQL)
Dim ObjAC As ClsContPAQi = Nothing
If UsuarioActual.Empresa.UsaAC Then
If UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.UsaContabilidad Then
ObjAC = New ClsContPAQi(UsuarioActual.Empresa)
ObjAC.IniciaTransacSQL()
End If
@@ -4023,7 +4023,7 @@ Partial Class Bancos_IE
Dim IdPolizaNueva = -1
Dim FolioPolizaNueva = -1
If (IDPoliza > 0 AndAlso UsuarioActual.Empresa.UsaAC) Then
If (IDPoliza > 0 AndAlso (UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.UsaContabilidad)) Then
If ObjAC Is Nothing Then
ErrorCancelar = True

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -43,11 +43,12 @@
<asp:ListItem Value="4" Text="Factura - Cliente"></asp:ListItem>
<asp:ListItem Value="5" Text="Productos y Sevicios" ></asp:ListItem>
<asp:ListItem Value="6" Text="RH - Personal"></asp:ListItem>
<asp:ListItem Value="7" Text="AF - Activos Fijos" Enabled="false"></asp:ListItem>
<asp:ListItem Value="8" Text="Contabilidad - Cuentas Contables" Enabled="True"></asp:ListItem>
<asp:ListItem Value="9" Text="ContaSIG - Cuentas Contables" Enabled="True"></asp:ListItem>
<asp:ListItem Value="10" Text="Cont - Saldos Iniciales Cuentas" Enabled="True"></asp:ListItem>
<asp:ListItem Value="11" Text="ContaSIG - Saldos Iniciales Cuentas" Enabled="True"></asp:ListItem>
<asp:ListItem Value="7" Text="AF - Activos Fijos" Enabled="false"></asp:ListItem>
<asp:ListItem Value="8" Text="Contabilidad - Cuentas Contables" Enabled="True"></asp:ListItem>
<asp:ListItem Value="9" Text="ContaSIG - Cuentas Contables" Enabled="True"></asp:ListItem>
<asp:ListItem Value="10" Text="Cont - Saldos Iniciales Cuentas" Enabled="True"></asp:ListItem>
<asp:ListItem Value="11" Text="ContaSIG - Saldos Iniciales Cuentas" Enabled="True"></asp:ListItem>
<asp:ListItem Value="12" Text="Almacen" Enabled="True"></asp:ListItem>
</asp:RadioButtonList>

View File

@@ -449,7 +449,26 @@ Partial Class General_SaldosIniciales
Alert("El nombre de la diescisieteava columna debe ser 'Clave Unidad'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
ElseIf RblFormato.SelectedValue = "12" Then
If Not dt.Columns(0).ColumnName = "CodigoPS" Then
Alert("El nombre de la primera columna debe ser 'CodigoPS'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(1).ColumnName = "Almacen" Then
Alert("El nombre de la segunda columna debe ser 'Almacen'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(2).ColumnName = "Existencia" Then
Alert("El nombre de la tercera columna debe ser 'Existencia'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(3).ColumnName = "Valor" Then
Alert("El nombre de la cuarta columna debe ser 'Valor'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
End If
@@ -606,10 +625,10 @@ Partial Class General_SaldosIniciales
'If Not ObjPS.UpdatePS(CveClasificacion, 1, CveUnidadMedida, Codigo, "", CodigoBarras, Descripcion, 0, 1, 1, False, 0, True, True, True, UsuarioActual.CveUsuario, CvePS, -1, -1, CveSATPS,
' CveTipoPS:=CveTipoPS, CveMarca:=CveMarca, CveTamaño:=CveTamaño, CveMedida:=CveMedida) Then
ErrorPS = True
Codigo.GuardaLog
Exit For
Else
Contador += 1
Codigo.GuardaLog
Exit For
Else
Contador += 1
End If
Else
If ObjPS.AddPS(CveClasificacion, 1, CveUnidadMedida, Codigo, "", "", Descripcion, 0, 0, 0, False, 0, False, True, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, 1,
@@ -873,7 +892,7 @@ Partial Class General_SaldosIniciales
End If
Dim ConceptoContablePago As Integer = 17
If TipoDocto = "NC" Then ConceptoContablePago = 60
'PrePólizaDetalle
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Total, Folio, IIf(TipoDocto = "Fac", 5, 18).ToString.ToEntero, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=Total, CveSubProyecto:=Sucursal.ToEntero) Then ErrorCompras = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, SubTotal, Folio, 6, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=SubTotal, CveClasificacion:=CveClasificacion, CveSubProyecto:=Sucursal.ToEntero) Then ErrorCompras = True : Exit For
@@ -927,7 +946,7 @@ Partial Class General_SaldosIniciales
If Not CvePS > 0 Then Alert(String.Format("No se encontró el Producto Servicio"), TipoMensaje.MsgError) : ErrorVentas = True
' If Not CveSucursal > 0 Then Alert("No se encontró la sucursal.", TipoMensaje.MsgError) : ErrorVentas = True
If Not CveUnidadMedida > 0 Then Alert(String.Format("No se encontró la Unidad de Medida."), TipoMensaje.MsgError) : ErrorVentas = True
Dim dtsubp As DataTable = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
Dim dtsubp As DataTable = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
For Each Row As DataRow In dt.FiltraParametros("RFC <> ''").Rows
@@ -953,7 +972,7 @@ Partial Class General_SaldosIniciales
Dim IEPS As Decimal = Row("IEPS").ToString.ToDecimal
Dim CveClienteSucursal As Integer = Row("CveClienteSucursal").ToString.ToEntero
GuardaLog(Sucursal + "-" + Row("Sucursal").ToString)
GuardaLog(Sucursal + "-" + Row("Sucursal").ToString)
'Temporalmente SE BORRARA
Dim Transaccion As String = "" ' Row("Transaccion2").ToString
Dim Folio2 As String = "" ' Row("Folio2").ToString
@@ -1015,7 +1034,7 @@ Partial Class General_SaldosIniciales
ConceptoContablePago = 91
End If
'PrePólizaDetalle
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SubTotal, Folio.ToString, 4, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveVenta:=CveVenta, CveCliente:=CveCliente, CveClasificacion:=CveClasificacion, ImporteMX:=SubTotal, CveSubProyecto:=Sucursal.ToEntero) Then ErrorVentas = True : Exit For
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Total, Folio.ToString, ConceptoContable, String.Format("{0}-{1}", Serie, Folio), Fecha, -1, -1, CveVenta:=CveVenta, CveCliente:=CveCliente, ImporteMX:=Total) Then ErrorVentas = True : Exit For
@@ -1501,7 +1520,52 @@ Partial Class General_SaldosIniciales
End Try
ObjConta.Dispose()
ElseIf RblFormato.SelectedValue = "12" Then
Dim ObjMovimientos As New ClsInventarios
ObjMovimientos.IniciaTransacSQL()
Dim OcurrioError As Boolean = False
Try
For Each almacenSinRepetir As DataRow In dt.FiltraParametros("", DistinctColumns:={"Almacen"}).Rows
Dim almacenActual As String = almacenSinRepetir("Almacen").ToString
Dim CveAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"Almacen = '{almacenActual}'").ToEntero
Dim movimientoCabecera As Integer = ObjMovimientos.AddMovimiento(CveAlmacen, 1, 1, Date.Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1)
If CveAlmacen > 0 Then
For Each nuevaEntrada As DataRow In dt.FiltraParametros($"Almacen = '{almacenActual}'").Rows
Dim CvePS As Integer = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePS", $"Codigo = '{nuevaEntrada("CodigoPS")}'").ToEntero
Dim CveUM As Integer = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveUnidadMedida", $"Codigo = '{nuevaEntrada("CodigoPS")}'").ToEntero
If CvePS > 0 Then
Dim Cantidad As Decimal = nuevaEntrada("Existencia").ToString.ToDecimal
Dim Valor As Decimal = nuevaEntrada("Valor").ToString.ToDecimal
If Not ObjMovimientos.AddMovimientoDetalle(movimientoCabecera, Cantidad, CveUM, CvePS, (Valor / Cantidad), -1, -1) Then
OcurrioError = True
End If
Else
OcurrioError = True
End If
Next
Else
OcurrioError = True
'alert amacén no existe
Exit For
End If
Next
Catch ex As Exception
OcurrioError = True
ObjMovimientos.RollBack()
End Try
If Not OcurrioError Then
ObjMovimientos.Commit()
Alert("Se cargó correctamente #movimientos")
Else
Alert("Ocurrió un error al cargar las existencias", TipoMensaje.MsgError)
ObjMovimientos.RollBack()
End If
ObjMovimientos.Dispose()
End If
End If
@@ -1528,6 +1592,8 @@ Partial Class General_SaldosIniciales
Directorio = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\SaldosIniciales\FormatoContabilidad.xlsx"
ElseIf RblFormato.SelectedValue = "9" Then
Directorio = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\SaldosIniciales\FormatoContabilidad.xlsx"
ElseIf RblFormato.SelectedValue = "12" Then
Directorio = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\SaldosIniciales\FormatoAlmacen.xlsx"
End If
Dim Archivo As New IO.FileInfo(Directorio)

View File

@@ -1,207 +1,215 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepNotasSinAlmacen.aspx.vb" Inherits="RepNotasSinAlmacen" %>
<asp:Content ID="Content1" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-ad-excel"></i> Exportar a Excel</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LinkPDF" runat="server"> <i class="fa fa-ad-pdf"></i> Generar PDF</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="Css" runat="Server">
<style>
.table-scrollable {
margin-top: 0px !important;
margin-bottom: 0px !important;
}
.Widthall {
width: 100% !important;
}
.dataTables_scrollHeadInner {
width: 100% !important;
background-color: #dddddd;
padding-left: 0px !important;
}
.dataTables_scrollFoot {
display: none;
position: static;
}
.table-scrollable {
margin: 0px !important;
}
.dataTables_scroll {
margin-bottom: 0px;
}
.table.dataTable {
margin-top: 0px !important;
}
.dataTables_scrollBody table th {
padding: 0px !important;
padding-right: 4px !important;
padding-left: 4px !important;
}
.sinlink td a {
pointer-events: none;
cursor: default;
color: black;
font-size: small;
}
.white a {
color: white !important;
}
.Derecha {
text-align: right;
}
.Izquierda {
text-align: left;
}
</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="E" runat="Server">
Reporte de Compras / Notas Sin Entrada
</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" style="min-height: 80px !important;">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepNotasSinAlmacen.aspx.vb" Inherits="RepNotasSinAlmacen" %>
<asp:Content ID="Content1" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-ad-excel"></i> Exportar a Excel</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LinkPDF" runat="server"> <i class="fa fa-ad-pdf"></i> Generar PDF</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="Css" runat="Server">
<style>
.table-scrollable {
margin-top: 0px !important;
margin-bottom: 0px !important;
}
.Widthall {
width: 100% !important;
}
.dataTables_scrollHeadInner {
width: 100% !important;
background-color: #dddddd;
padding-left: 0px !important;
}
.dataTables_scrollFoot {
display: none;
position: static;
}
.table-scrollable {
margin: 0px !important;
}
.dataTables_scroll {
margin-bottom: 0px;
}
.table.dataTable {
margin-top: 0px !important;
}
.dataTables_scrollBody table th {
padding: 0px !important;
padding-right: 4px !important;
padding-left: 4px !important;
}
.sinlink td a {
pointer-events: none;
cursor: default;
color: black;
font-size: small;
}
.white a {
color: white !important;
}
.Derecha {
text-align: right;
}
.Izquierda {
text-align: left;
}
</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="E" runat="Server">
Reporte de Compras / Notas Sin Entrada
</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" style="min-height: 80px !important;">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="btConsultar" CssClass="btn btn-primary" runat="server" Text="Consultar" /></td>
</div>
<div class="titlefiltros caption ">
<div class="row">
<div class="col-md-1 truncate" id="DivCliente1" runat="server" style="text-align: right!important">Cliente:</div>
<div class="col-md-3" id="DivCliente2" runat="server">
<ADS:Dropdownlost ID="DdlCliente" runat="server" CssStyle="width: 100%;" Width="100%" DataTextField="NombreComercial" DataValueField="CveCliente"></ADS:Dropdownlost>
</div>
<div class="col-md-1 truncate" id="DivProveedor1" runat="server" visible="false" style="text-align: right!important">Proveedor:</div>
<div class="col-md-3" id="DivProveedor2" runat="server" visible="false">
<ADS:Dropdownlost ID="DdlProveedor" runat="server" CssStyle="width: 100%;" Width="100%" DataTextField="RazonSocial" DataValueField="CveProveedor" ></ADS:Dropdownlost>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">Fecha Inicio:</div>
<div class="col-md-1 col-sm-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaI" runat="server" CssClass="form-control" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaI" 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="CEFechaI" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">Fecha Fin:</div>
<div class="col-md-1 col-sm-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaF" runat="server" CssClass="form-control" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaF" 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="CalendarExtender1" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
<div class="row">
<div class="col-md-1 truncate" id="DivTipoDoctoVenta" style="text-align: right!important;" runat="server">Tipo Documento:</div>
<div class="col-md-1" id="DivTipoDocto1" runat="server">
<asp:DropDownList ID="DdlTipoDocto1" runat="server" Class="table-group-action-input form-control input-inline input-sm select2me" Width="100px">
<asp:ListItem Selected="True" Text="Todos" Value="-1"></asp:ListItem>
<asp:ListItem Text="Ingresos" Value="Ing"></asp:ListItem>
<asp:ListItem Text="Egresos" Value="Egs"></asp:ListItem>
<asp:ListItem Text="Remisión" Value="Rem"></asp:ListItem>
<asp:ListItem Text="Pedido" Value="Ped"></asp:ListItem>
</asp:DropDownList>
</div>
<div class="col-md-1 truncate" id="DivTipoDoctoCompra" style="text-align: right!important;" runat="server" visible="false">Tipo Documento:</div>
<div class="col-md-1" id="DivTipoDoctoCompra2" runat="server" visible="false">
<asp:DropDownList ID="DdlTipoDocto2" runat="server" Class="table-group-action-input form-control input-inline input-sm select2me" Width="100px">
<asp:ListItem Selected="True" Text="Todos" Value="-1"></asp:ListItem>
<asp:ListItem Text="Factura" Value="Fac"></asp:ListItem>
</asp:DropDownList>
</div>
<%-- <div class="col-md-1 truncate" id="DivSucursal" runat="server" style="text-align: right!important;">Sucursal:</div>
</div>
<div class="titlefiltros caption ">
<div class="row">
<div class="col-md-1 truncate" id="DivCliente1" runat="server" style="text-align: right!important">Cliente:</div>
<div class="col-md-3" id="DivCliente2" runat="server">
<ADS:Dropdownlost ID="DdlCliente" runat="server" CssStyle="width: 100%;" Width="100%" DataTextField="NombreComercial" DataValueField="CveCliente"></ADS:Dropdownlost>
</div>
<div class="col-md-1 truncate" id="DivProveedor1" runat="server" visible="false" style="text-align: right!important">Proveedor:</div>
<div class="col-md-3" id="DivProveedor2" runat="server" visible="false">
<ADS:Dropdownlost ID="DdlProveedor" runat="server" CssStyle="width: 100%;" Width="100%" DataTextField="RazonSocial" DataValueField="CveProveedor"></ADS:Dropdownlost>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">Fecha Inicio:</div>
<div class="col-md-1 col-sm-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaI" runat="server" CssClass="form-control" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaI" 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="CEFechaI" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">Fecha Fin:</div>
<div class="col-md-1 col-sm-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaF" runat="server" CssClass="form-control" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaF" 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="CalendarExtender1" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
<div class="row">
<div class="col-md-1 truncate" id="DivTipoDoctoVenta" style="text-align: right!important;" runat="server">Tipo Documento:</div>
<div class="col-md-1" id="DivTipoDocto1" runat="server">
<asp:DropDownList ID="DdlTipoDocto1" runat="server" Class="table-group-action-input form-control input-inline input-sm select2me" Width="100px">
<asp:ListItem Selected="True" Text="Todos" Value="-1"></asp:ListItem>
<asp:ListItem Text="Ingresos" Value="Ing"></asp:ListItem>
<asp:ListItem Text="Egresos" Value="Egs"></asp:ListItem>
<asp:ListItem Text="Remisión" Value="Rem"></asp:ListItem>
<asp:ListItem Text="Pedido" Value="Ped"></asp:ListItem>
</asp:DropDownList>
</div>
<div class="col-md-1 truncate" id="DivTipoDoctoCompra" style="text-align: right!important;" runat="server" visible="false">Tipo Documento:</div>
<div class="col-md-1" id="DivTipoDoctoCompra2" runat="server" visible="false">
<asp:DropDownList ID="DdlTipoDocto2" runat="server" Class="table-group-action-input form-control input-inline input-sm select2me" Width="100px">
<asp:ListItem Selected="True" Text="Todos" Value="-1"></asp:ListItem>
<asp:ListItem Text="Factura" Value="Fac"></asp:ListItem>
</asp:DropDownList>
</div>
<%-- <div class="col-md-1 truncate" id="DivSucursal" runat="server" style="text-align: right!important;">Sucursal:</div>
<div class="col-md-1" id="DivSucursal2" runat="server">
<asp:DropDownList ID="DdlSucursal" runat="server" AppendDataBoundItems="true" DataTextField="Sucursal" DataValueField="CveSucursal" Class="table-group-action-input form-control input-inline input-sm select2me" Width="100px">
<asp:ListItem Selected="True" Text="Todas" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>--%>
<div class="col-md-1 truncate" id="DivSubProyecto" runat="server" style="text-align: right!important;">Proyecto:</div>
<div class="col-md-1" id="DivSubProyecto2" runat="server" >
<asp:DropDownList ID="DdlSubProyecto" CssClass="form-control input-sm select2me" runat="server" DataTextField="SubProyecto" DataValueField="CveSubProyecto" Width="150px">
<asp:ListItem Selected="true" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="Updatetabs" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<ajax:TabContainer ID="Tab" OnActiveTabChanged="Tab_ActiveTabChanged" AutoPostBack="true" runat="server" ActiveTabIndex="0" Width="100%">
<ajax:TabPanel ID="TabVentas" runat="server" HeaderText="Ventas">
<ContentTemplate>
<div style="text-align: right!important">
<input type="text" id="TxtBusquedaVentas" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusquedaVentas','{0}')", GvVentas.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusquedaVentas','{0}')", GvVentas.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:UpdatePanel ID="UpDatosGvVentas" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvVentas" ClientIDMode="Static" Width="100%" runat="server" GridLines="None" BorderWidth="0" CssClass="table table-striped table-hover Widthall ScrollAD" data-sort="true" ShowHeader="True" EmptyDataText="No se encontraron resultados." ShowHeaderWhenEmpty="true" AutoGenerateColumns="False" AllowPaging="False" ShowFooter="False">
<Columns>
<asp:BoundField HeaderText="Tipo Documento" DataField="TipoDocto" ItemStyle-Width="125px" />
<asp:HyperLinkField DataNavigateUrlFields="CveVenta" DataNavigateUrlFormatString="~/Ventas/Ventas.aspx?CveVenta={0}" Target="_blank" ItemStyle-Width="15%" HeaderText="SerieFolio" ControlStyle-CssClass="Texto" DataTextField="SerieFolio" />
<asp:BoundField HeaderText="Fecha" DataField="Fecha" DataFormatString="{0:d}" ItemStyle-HorizontalAlign="Center" />
<asp:HyperLinkField DataNavigateUrlFields="CveCliente" DataNavigateUrlFormatString="~/Ventas/Clientes.aspx?CveCliente={0}" Target="_blank" HeaderText="Cliente" ControlStyle-CssClass="Texto" ItemStyle-HorizontalAlign="Left" DataTextField="Nombre" />
<asp:BoundField HeaderText="Total" DataField="Total" DataFormatString="{0:n2}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Sucursal" DataField="SubProyecto" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabCompras" runat="server" HeaderText="Compras">
<ContentTemplate>
<div style="text-align: right!important">
<input type="text" id="TxtBusquedaCompras" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusquedaCompras','{0}')", GvCompras.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusquedaCompras','{0}')", GvCompras.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:UpdatePanel ID="UpDatosGvCompras" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvCompras" ClientIDMode="Static" Width="100%" runat="server" GridLines="None" BorderWidth="0" CssClass="table table-striped table-hover Widthall ScrollAD" data-sort="true" ShowHeader="True" EmptyDataText="No se encontraron resultados." ShowHeaderWhenEmpty="true" AutoGenerateColumns="False" AllowPaging="False" ShowFooter="False" OnRowDataBound="GvCompras_RowDataBound">
<Columns>
<asp:BoundField HeaderText="Cantidad Solicitada" DataField="CantidadC" DataFormatString="{0:#,##0.##}" ItemStyle-HorizontalAlign="Right"/>
<asp:BoundField HeaderText="Cantidad Restante" DataField="CantidadF" DataFormatString="{0:#,##0.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Proveedor/Producto ó Servicio" DataField="CodigoPS" ItemStyle-HorizontalAlign="Left"/>
<asp:BoundField HeaderText="Total" DataField="Total" DataFormatString="{0:#,##0.##}" ItemStyle-HorizontalAlign="Right" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</ajax:TabPanel>
</ajax:TabContainer>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
</div>--%>
<div class="col-md-1 truncate" id="DivSubProyecto" runat="server" style="text-align: right!important;">Proyecto:</div>
<div class="col-md-1" id="DivSubProyecto2" runat="server">
<asp:DropDownList ID="DdlSubProyecto" CssClass="form-control input-sm select2me" runat="server" DataTextField="SubProyecto" DataValueField="CveSubProyecto" Width="150px">
<asp:ListItem Selected="true" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="Updatetabs" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<ajax:TabContainer ID="Tab" OnActiveTabChanged="Tab_ActiveTabChanged" AutoPostBack="true" runat="server" ActiveTabIndex="0" Width="100%">
<ajax:TabPanel ID="TabVentas" runat="server" HeaderText="Ventas">
<ContentTemplate>
<div style="text-align: right!important">
<input type="text" id="TxtBusquedaVentas" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusquedaVentas','{0}')", GvVentas.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusquedaVentas','{0}')", GvVentas.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:UpdatePanel ID="UpDatosGvVentas" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvVentas" ClientIDMode="Static" Width="100%" runat="server" GridLines="None" BorderWidth="0" CssClass="table table-striped table-hover Widthall ScrollAD" data-sort="true" ShowHeader="True" EmptyDataText="No se encontraron resultados." ShowHeaderWhenEmpty="true" AutoGenerateColumns="False" AllowPaging="False" ShowFooter="False">
<Columns>
<asp:BoundField HeaderText="Tipo Documento" DataField="TipoDocto" ItemStyle-Width="125px" />
<asp:HyperLinkField DataNavigateUrlFields="CveVenta" DataNavigateUrlFormatString="~/Ventas/Ventas.aspx?CveVenta={0}" Target="_blank" ItemStyle-Width="15%" HeaderText="SerieFolio" ControlStyle-CssClass="Texto" DataTextField="SerieFolio" />
<asp:BoundField HeaderText="Fecha" DataField="Fecha" DataFormatString="{0:d}" ItemStyle-HorizontalAlign="Center" />
<asp:HyperLinkField DataNavigateUrlFields="CveCliente" DataNavigateUrlFormatString="~/Ventas/Clientes.aspx?CveCliente={0}" Target="_blank" HeaderText="Cliente" ControlStyle-CssClass="Texto" ItemStyle-HorizontalAlign="Left" DataTextField="Nombre" />
<asp:BoundField HeaderText="Total" DataField="Total" DataFormatString="{0:n2}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Sucursal" DataField="SubProyecto" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabCompras" runat="server" HeaderText="Compras">
<ContentTemplate>
<div style="text-align: right!important">
<input type="text" id="TxtBusquedaCompras" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusquedaCompras','{0}')", GvCompras.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusquedaCompras','{0}')", GvCompras.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:UpdatePanel ID="UpDatosGvCompras" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvCompras" ClientIDMode="Static" Width="100%" runat="server" GridLines="None" BorderWidth="0" DataKeyNames="CveCompra,CveCompraDetalle,CvePS" CssClass="table table-striped table-hover Widthall ScrollAD" data-sort="true" ShowHeader="True" EmptyDataText="No se encontraron resultados." ShowHeaderWhenEmpty="true" AutoGenerateColumns="False" AllowPaging="False" ShowFooter="False" OnRowDataBound="GvCompras_RowDataBound">
<Columns>
<asp:BoundField HeaderText="Cantidad Solicitada" DataField="CantidadC" DataFormatString="{0:#,##0.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Cantidad Restante" DataField="CantidadF" DataFormatString="{0:#,##0.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Proveedor/Producto ó Servicio" DataField="CodigoPS" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField HeaderText="Total" DataField="Total" DataFormatString="{0:#,##0.##}" ItemStyle-HorizontalAlign="Right" />
<asp:TemplateField ItemStyle-Width="70px" HeaderText="Acción" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<span data-placement="top" data-toggle="tooltip" title="Marcar el producto como que no se recibirá">
<asp:LinkButton runat="server" OnClick="BtnActulizarEstatus_Click" CssClass="btn btn-sm red" Text="<i class='fa fa-eye-slash' aria-hidden='true'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro de marcar el producto como que no se recibirá?" data-btn-ok-label="si"></asp:LinkButton>
</span>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</ajax:TabPanel>
</ajax:TabContainer>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<%--<script src="/Scripts/DataTables.js"></script>
<script type="text/javascript">
@@ -247,6 +255,6 @@
$('#GvCompras').parent().parent().children().first().css("position", "static");
}
</script>--%>
</asp:Content>
</script>--%>
</asp:Content>

View File

@@ -70,9 +70,11 @@ Partial Class RepNotasSinAlmacen
End If
End Sub
Private Sub CargaPermisos()
Dim TienePermisoImportes As Boolean = UsuarioActual.TienePermisoProceso(201)
Dim TienePermisoImportes As Boolean = UsuarioActual.TienePermisoProceso(201)
Dim TienePermisoDesmarcar As Boolean = UsuarioActual.TienePermisoProceso(278)
GvVentas.Columns(4).Visible = TienePermisoImportes
GvCompras.Columns(3).Visible = TienePermisoImportes
GvCompras.Columns(3).Visible = TienePermisoImportes
GvCompras.Columns(4).Visible = TienePermisoDesmarcar
End Sub
Private Sub CargaCombos()
TxtFechaF.Text = Date.Now.ToShortDateString
@@ -261,12 +263,12 @@ Partial Class RepNotasSinAlmacen
ImprimirPDF("Empresas/Grales/Formatos/RepNotasSinAlmacenCompras.rdlc", DtNotasSinAlmacenCompras, params, "RepNotasSinAlmacenCompras", Formato:=Formato)
End If
End Sub
End Sub
#End Region
#End Region
Protected Sub GvCompras_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
If Not e.Row.DBCampo("CveCompraDetalle").ToEntero > 0 Then
@@ -275,9 +277,40 @@ Partial Class RepNotasSinAlmacen
e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left
e.Row.Cells(1).Text = e.Row.DBCampo("Fecha").ToDate.ToShortDateString
e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Center
e.Row.Cells(2).Text = "<a class=""Texto"" href=""/Compras/Proveedores.aspx?CveProveedor=" & e.Row.DBCampo("CveProveedor") & """>" & e.Row.DBCampo("RazonSocial") & "</a>"
e.Row.Cells(2).Text = "<a class=""Texto"" href=""/Compras/Proveedores.aspx?CveProveedor=" & e.Row.DBCampo("CveProveedor") & """>" & e.Row.DBCampo("RazonSocial") & "</a>"
If GvCompras.Columns(4).Visible Then
e.Row.Cells(4).Text = ""
End If
End If
End If
End Sub
End Sub
Protected Sub BtnActulizarEstatus_Click(sender As Object, e As EventArgs)
If UsuarioActual.TienePermisoProceso(278) Then
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim CveCompraDetalle As Integer = GvRow.DataKey("CveCompraDetalle")
Dim CveCompra As Integer = GvRow.DataKey("CveCompra")
Dim CvePS As Integer = GvRow.DataKey("CveCompra")
Dim PS = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("PSCodigo", $"CvePS = {CvePS}")
Dim ObjCompras As New ClsCompras
Dim ObjEventos As New ClsOIEventos
If ObjCompras.UpdateEstatusAlmacenDetalle(CveCompraDetalle, 1) Then
If ObjEventos.AddEventoBitacora(String.Format("Se cambio el estatus de almacen del producto/servicio: {0} a 'No Recibir'", PS), "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra:=CveCompra) Then
Alert("El producto se desmarco correctamente.")
End If
End If
ObjCompras.Dispose()
ObjEventos.Dispose()
CargaDatos()
End If
End Sub
End Class

View File

@@ -828,8 +828,7 @@
<ajax:FilteredTextBoxExtender ID="SoloNumerosDescuento" runat="server" TargetControlID="TxtDescuentoAdd" FilterType="Custom, Numbers" ValidChars="." />
<asp:CustomValidator ID="CVDescuento" runat="server" ClientValidationFunction="ValidaDecimal6digitsEmpty" ControlToValidate="TxtDescuentoAdd" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Descuento''</b> no tiene el formato correcto, por favor corrija e intente de nuevo (Solo formato numérico con máximo seis decimales)." ValidateEmptyText="True" ValidationGroup="GrpDetalleGuardar"></asp:CustomValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" HighlightCssClass="vco" TargetControlID="CVDescuento" Width="300px"></ajax:ValidatorCalloutExtender>
<asp:RequiredFieldValidator ID="RfvDescuento" runat="server" ControlToValidate="TxtDescuentoAdd" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Descuento''</b> es necesario, por favor ingréselo." ValidationGroup="GrpDetalleGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VceDescuento" runat="server" HighlightCssClass="vco" TargetControlID="RfvDescuento" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
<td style="text-align: right; padding-right: 7px;">
<asp:TextBox runat="server" ID="Total" ClientIDMode="Static" CssClass="alineanum" Width="55px" Height="24px" Enabled="false"></asp:TextBox>

View File

@@ -40,14 +40,14 @@
<div class="portlet-title">
<div class="caption font-blue">
<i class="fa fa-file-text-o font-blue"></i>
<span class="caption-subject bold uppercase">Facturas emitidas en el sat sin registrar (<%= GVConciliacionemitidasSAT.Rows.Count %>)</span>
<span class="caption-subject bold uppercase">Facturas emitidas en el sat sin registrar <asp:Literal ID="Ltlsinregistrar" runat="server"></asp:Literal> de <asp:Literal ID="ltlTotal" runat="server"></asp:Literal></span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
<div style="float: right;">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="FiltrarTabla('TxtBusqueda','GVConciliacionemitidasSAT')" style="display: inline-block; margin-right: -20px; width: 150px;">
<a href="javascript:;" onclick="FiltrarTabla('TxtBusqueda','GVConciliacionemitidasSAT')" style="margin-top: -3px;" class="btn btn-circle btn-sm font-bold blue"><i class="icon-magnifier" style="font-weight: bold;"></i></a>
<div style="float: right;"><label id="Contador"></label>
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="FiltrarTabla('#TxtBusqueda','.GVConciliacionemitidasSAT','#Contador')" style="display: inline-block; margin-right: -20px; width: 150px;">
<a href="javascript:;" onclick="FiltrarTabla('#TxtBusqueda','.GVConciliacionemitidasSAT','#Contador')" style="margin-top: -3px;" class="btn btn-circle btn-sm font-bold blue"><i class="icon-magnifier" style="font-weight: bold;"></i></a>
</div>
</div>
<div class="portlet-body ">
@@ -98,14 +98,15 @@
<ItemTemplate>
<%--<asp:Label ID="lblrutaXml" runat="server" Text='<%# Eval("RutaXml")%>'> </asp:Label>--%>
</ItemTemplate>
</asp:TemplateField>
</asp:TemplateField>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:HyperLink runat="server" NavigateUrl='<%# Eval("CveVenta","/Ventas/Ventas.aspx?CveVenta={0}") %>' CssClass="btn btn-circle btn-sm btn-success" Visible='<%# (Eval("CveVenta").ToString() =="" ? false :true) %>' ><i class="fa fa-info"></i>r</asp:HyperLink>
<asp:HyperLink runat="server" NavigateUrl='<%# Eval("CveVenta","/Ventas/Ventas.aspx?CveVenta={0}") %>' CssClass="btn btn-circle btn-sm btn-success" Visible='<%# (Eval("CveVenta").ToString() =="" ? false :true) %>'><i class="fa fa-info"></i>r</asp:HyperLink>
<asp:LinkButton ID="LnkRegistrar" Visible='<%# Eval("CveVenta").ToString() =="" %>' runat="server" data-toggle="tooltip" ToolTip="Registrar" CssClass="btn btn-circle btn-sm blue" OnClick="LnkRegistrar_Click"><i class="fa fa-plus"></i></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<HeaderStyle CssClass ="SearchADHeader" />
</asp:GridView>
</div>
</div>
@@ -153,6 +154,15 @@
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script>
$('#DModalDefaults').modal();
function FiltrarTabla(idtxt, idtable, idcontador) {
if ($('' + idtxt).val() == '') { $('table' + idtable + ' tr').css('display', 'table-row'); }
else { $('table' + idtable + ' tr:not(.ADtr):not(.SearchADHeader)').css('display', 'none'); $('table' + idtable + ' tr:contains("' + $('' + idtxt).val() + '")').css('display', 'table-row'); }
if ($('' + idcontador).length > 0) {
$('' + idcontador).html('(' + $('' + idtable + ' tr:not(.ADtr):not(.SearchADHeader):visible').length +'/'+ $('' + idtable + ' tr:not(.ADtr):not(.SearchADHeader)').length + ')');
}
}
</script>
</asp:Content>

View File

@@ -11,6 +11,7 @@ using Extensiones;
using System.Data;
using System.Text;
using ADSistemaLibrary.SatXml;
//using ADS_CFDI_SAT;
public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
{
@@ -44,7 +45,7 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
DdlPS.setEsWebService(false);
DdlPS.ddl.DataSource = get_GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion: CveClasificacion, Estatus: 1, AplicaParaVenta: 1);
DdlPS.ddl.DataBind();
}
}
}
}
protected void CargaConciliacionemitidasSATGet()
@@ -52,6 +53,8 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
ClsVentas ObjV = new ClsVentas();
ObjV.ConciliacionemitidasSATGet(UsuarioActual.CveEmpresa);
GVConciliacionemitidasSAT.DataSource = ObjV.DtResultados.FiltraParametros("", "CveVenta");
Ltlsinregistrar.Text = $"{ObjV.DtResultados.COUNT("FolioFiscal","CveVenta IS NULL")}";
ltlTotal.Text = $"{ObjV.DtResultados.Rows.Count}";
ObjV.Dispose();
GVConciliacionemitidasSAT.DataBind();
UpDatosReporte.Update();
@@ -229,6 +232,39 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
int CvePsReconstruccion = DdlPS.SelectedValue.ToEntero();
int CveSubProyectoReconstruccion = DdlSubProyectoDatos.SelectedValue.ToEntero();
//Modelos.Factura.MMensajeFactura resp;
string Moneda = objxml.comprobante.Moneda;
if (objxml.comprobante.Version == "3.2")
{
switch (Moneda)
{
case "Peso Mexicano": Moneda = "MXN"; break;
case "Dolar Americano": Moneda = "USD"; break;
}
}
string formadepago = objxml.comprobante.FormaPago;
string metododepago = objxml.comprobante.MetodoPago;
if (objxml.comprobante.Version == "3.2")
{
switch (objxml.comprobante.MetodoPago)//si es correcto estan invertidos
{
case "TRANSFERENCIA ELECTRONICA": formadepago = "03"; break;
default: formadepago = objxml.comprobante.MetodoPago; break;
}
}
if (objxml.comprobante.Version == "3.2")
{
switch (objxml.comprobante.FormaPago)//si es correcto estan invertidos
{
case "PAGO EN UNA SOLA EXHIBICION": metododepago = "PUE"; break;
default: metododepago = objxml.comprobante.FormaPago; break;
}
}
Modelos.Factura objfact = new Modelos.Factura(UsuarioActual)
{
TipoMensajeRespuesta = Modelos.TipoMensajeRespuesta.TextoLimpio,//?que es esto
@@ -242,8 +278,8 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
TipoCambio = objxml.comprobante.TipoCambio,
//ConvertirPesos =false,//?para que sirve
MonedaSAT = objxml.comprobante.Moneda,
CveMoneda = GlobalDTMonedas.FiltroPrimeroValor("CveMoneda", $" AbreviaturaSAT= '{objxml.comprobante.Moneda}' ").ToEntero(),
Moneda = GlobalDTMonedas.FiltroPrimeroValor("Moneda", $" AbreviaturaSAT= '{objxml.comprobante.Moneda}' "),
CveMoneda = GlobalDTMonedas.FiltroPrimeroValor("CveMoneda", $" AbreviaturaSAT= '{Moneda}' ").ToEntero(),
Moneda = GlobalDTMonedas.FiltroPrimeroValor("Moneda", $" AbreviaturaSAT= '{Moneda}' "),
TipoDocto = objxml.comprobante.TipoDeComprobanteSIG,
RefDocto = "",
CveMesa = -1,
@@ -292,11 +328,11 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
}
objfact.CveAlmacen = -1;
objfact.CveFormaPago33 = GlobalDTVtaFormaPago.FiltroPrimeroValor("CveFormaPago", $"ClaveFormaPagoSAT = '{objxml.comprobante.FormaPago}'").ToEntero();
objfact.CveFormaPago33 = GlobalDTVtaFormaPago.FiltroPrimeroValor("CveFormaPago", $"ClaveFormaPagoSAT = '{formadepago}'").ToEntero();
objfact.FormaPagoSAT33 = objxml.comprobante.FormaPago;
objfact.FormaPago33 = objxml.comprobante.FormaPagoTexto;
objfact.CveMetodoPago33 = GlobalDTVtaMetodoPago.FiltroPrimeroValor("CveMetodoPago", $" ClaveMetodoPagoSAT = '{objxml.comprobante.MetodoPago}'").ToEntero();
objfact.CveMetodoPago = GlobalDTVtaMetodoPago.FiltroPrimeroValor("CveMetodoPago", $" ClaveMetodoPagoSAT = '{objxml.comprobante.MetodoPago}'").ToEntero();
objfact.CveMetodoPago33 = GlobalDTVtaMetodoPago.FiltroPrimeroValor("CveMetodoPago", $" ClaveMetodoPagoSAT = '{metododepago}'").ToEntero();
objfact.CveMetodoPago = GlobalDTVtaMetodoPago.FiltroPrimeroValor("CveMetodoPago", $" ClaveMetodoPagoSAT = '{metododepago}'").ToEntero();
objfact.ClaveMetodoPagoSAT = objxml.comprobante.MetodoPago;
objfact.MetodoPago33 = objxml.comprobante.MetodoPagoTexto;
objfact.CveUsoCFDI = get_GlobalDTSATUsosCFDI(-1).FiltroPrimeroValor("CveUsoCFDI", $"UsoCFDI = '{objxml.receptor.UsoCFDI}'").ToEntero();
@@ -304,16 +340,16 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
objfact.ClaveUsoCFDI = objxml.receptor.UsoCFDI;
objfact.CveClienteSucursal = -1;
objfact.DtDetalle = CreaDTDetalle(UsuarioActual, objxml.conceptos, objfact.CveSubProyecto, CvePsReconstruccion);
objfact.DtDetalle = CreaDTDetalle(UsuarioActual, objxml.conceptos, objfact.CveSubProyecto, CvePsReconstruccion, objxml);
objfact.TipoCambioDolares = objxml.comprobante.TipoCambio;
objfact.SubTotal = objxml.comprobante.SubTotal;
objfact.Descuento = objxml.comprobante.Descuento;
objfact.Amortizacion = 0;
objfact.IVA = objxml.Impuestos.Where(x => x.Impuesto == "002" && x.Tipo == "Traslados").Sum(item => item.Importe);
objfact.RetIVA = objxml.Impuestos.Where(x => x.Impuesto == "002" && x.Tipo == "Retenciones").Sum(item => item.Importe);
objfact.RetISR = objxml.Impuestos.Where(x => x.Impuesto == "001" && x.Tipo == "Retenciones").Sum(item => item.Importe);
objfact.IEPS = objxml.Impuestos.Where(x => x.Impuesto == "003").Sum(item => item.Importe);
objfact.IVA = objxml.Impuestos.Where(x => (x.Impuesto == "002" || x.Impuesto == "IVA") && x.Tipo == "Traslados").Sum(item => item.Importe);
objfact.RetIVA = objxml.Impuestos.Where(x => (x.Impuesto == "002" || x.Impuesto == "IVA") && x.Tipo == "Retenciones").Sum(item => item.Importe);
objfact.RetISR = objxml.Impuestos.Where(x => (x.Impuesto == "001" || x.Impuesto == "ISR") && x.Tipo == "Retenciones").Sum(item => item.Importe);
objfact.IEPS = objxml.Impuestos.Where(x => (x.Impuesto == "003" || x.Impuesto == "IEPS")).Sum(item => item.Importe);
objfact.Total = objxml.comprobante.Total;
objfact.TotalOtrosConceptos = 0;
@@ -328,7 +364,7 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
}
return objfact;
}
private DataTable CreaDTDetalle(Usuario UsuarioActual, List<CFDIConcepto> conceptos, int CveSubProyecto, int CvePsReconstruccion)
private DataTable CreaDTDetalle(Usuario UsuarioActual, List<CFDIConcepto> conceptos, int CveSubProyecto, int CvePsReconstruccion, XmlSatCFDI objxml)
{
bool continuar = true;
var TmpDT = new DataTable();
@@ -433,14 +469,29 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
}
DrSubProyecto = get_GlobalDTSubProyectos(-1, CveSubProyecto, UsuarioActual.CveEmpresa).Rows[0];
if (objxml.comprobante.Version == "3.2")
{
item.ClaveUnidad = item.Unidad;
switch (item.ClaveUnidad)
{
case "TON": item.ClaveUnidad = "A75"; break;
case "No aplica": item.ClaveUnidad = "ACT"; break;
case "LITROS": item.ClaveUnidad = "E32"; break;
case "M3-KM": item.ClaveUnidad = "M73"; break;
}
}
DrUmSat = GlobalDTPSATUM.FiltroPrimero(string.Format("SATClaveUnidadMedida='{0}'", item.ClaveUnidad));
}
if (continuar && DrUmSat == null ) { continuar = false; strErrores.AppendLine($"No se encontro la unidad de medida en el catalogo del sat '{item.ClaveUnidad}', favor de contactar a soporte tecnico."); }
if (continuar && DrUmSat == null) { continuar = false; strErrores.AppendLine($"No se encontro la unidad de medida en el catalogo del sat '{item.ClaveUnidad}', favor de contactar a soporte tecnico."); }
if (continuar)
{
DrUm = get_GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa).FiltroPrimero(string.Format("CveUnidadMedidaSAT={0}", DrUmSat["CveSATUnidadMedida"]));
}
if (continuar && DrUm == null) { continuar = false; strErrores.AppendLine($"No se encontro la unidad de medida relacionada a la clave del sat '{item.ClaveUnidad}', favor de asignarla en el catalogo de unidad de medida."); }
if (continuar && DrUm == null) { continuar = false; strErrores.AppendLine($"No se encontro la unidad de medida relacionada a la clave del sat '{item.ClaveUnidad}', favor de asignarla en el catalogo de unidad de medida."); }
if (continuar)
{
//no se encontro una undidad de medida para
@@ -475,24 +526,34 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
Row["CveTipoPS"] = DrPS["CveTipoPS"];
Row["CveTipoInvPS"] = DrPS["Inv_CveMetodoInventario"];
Row["CveTamaño"] = DrPS["CveTamaño"];
ADSistemaLibrary.SatXml.CFDIConceptoImpuesto impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "002" && x.Tipo == "Traslado");
decimal sumaimpuesto=0;
CFDIConceptoImpuesto impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "002" && x.Tipo == "Traslado");
decimal sumaimpuesto = 0;
decimal PorcentajeIVA = 0;
if (impuesto != null)
{
decimal decimpuesto = 0;
decimal.TryParse(impuesto.TasaOCuota, out decimpuesto);
PorcentajeIVA = decimpuesto/100;
Row["PorcentajeIVA"] = decimpuesto / 100;
Row["ImporteIVA"] = decimpuesto / 100;// impuesto.Importe;//Math.Round(item.Importe * (decimpuesto/100), 2);
PorcentajeIVA = decimpuesto / 100;
Row["PorcentajeIVA"] = PorcentajeIVA;
Row["ImporteIVA"] = impuesto.Importe ;// impuesto.Importe;//Math.Round(item.Importe * (decimpuesto/100), 2);
sumaimpuesto += impuesto.Importe;
}
else
{
Row["PorcentajeIVA"] = 0;
Row["ImporteIVA"] = 0;
if (objxml.comprobante.Version == "3.2")
{
if (item.Importe > 0)
{
PorcentajeIVA = .16M;
Row["PorcentajeIVA"] = PorcentajeIVA;
Row["ImporteIVA"] = item.Importe * PorcentajeIVA;//Math.Round(((item.Importe / (1 + PorcentajeIVA))*.16M),2);
}
}
}
Row["IVA"] = Row["PorcentajeIVA"];
Row["IVA"] = Row["ImporteIVA"];
impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "003" && x.Tipo == "Traslado");
if (impuesto != null)
{
@@ -541,7 +602,7 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
Row["TipoDescuento"] = "2";
//Row["Total"] = item.Importe - sumaimpuesto;
Row["Total"] = item.Importe /(1+ PorcentajeIVA);
Row["Total"] = item.Importe / (1 + PorcentajeIVA);
Row["TotalImporte"] = item.Importe;
Row["SATClaveProdServ"] = item.ClaveProdServ;
@@ -579,14 +640,12 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
}
}
/*
//SatCFDI
namespace ADS_CFDI_SAT
{
/// <summary>
/// clase para contener los valores de un xml CFDI
/// clase para contener los valores de un xml CFDI cambio norama
/// </summary>
public class XmlSatCFDI
{
@@ -660,6 +719,7 @@ namespace ADS_CFDI_SAT
return lcon;
}
public static XmlSatCFDI readXML(string fileUrl)
{
XmlSatCFDI xmlCFDI = new XmlSatCFDI();
@@ -677,7 +737,11 @@ namespace ADS_CFDI_SAT
//(canread = xtr.Read()) para evitar ciclos infinitos, todos los .Read() los guardo en la variable Canread y en los while reviso primero esta variable
if (File.Exists(fileUrl))
{
using (XmlTextReader xtr = new XmlTextReader(fileUrl))
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.IgnoreWhitespace = true;
settings.IgnoreComments = true;
using (XmlReader xtr = XmlReader.Create(fileUrl, settings))
{
while ((canread = xtr.Read()) && !(xtr.NodeType == XmlNodeType.Element && xtr.Name == keyComprobante))
@@ -686,40 +750,40 @@ namespace ADS_CFDI_SAT
}
if (xtr.NodeType == XmlNodeType.Element && xtr.Name == keyComprobante)
{
xmlCFDI.comprobante.xmlns_cfdi = xtr.GetAttribute("xmlns:cfdi");
xmlCFDI.comprobante.xmlns_xsi = xtr.GetAttribute("xmlns:xsi");
xmlCFDI.comprobante.xsi_schemaLocation = xtr.GetAttribute("xsi:schemaLocation");
xmlCFDI.comprobante.Version = xtr.GetAttribute("Version");
xmlCFDI.comprobante.Serie = xtr.GetAttribute("Serie");
xmlCFDI.comprobante.Folio = xtr.GetAttribute("Folio");
xmlCFDI.comprobante.Fecha = xtr.GetAttribute("Fecha");
xmlCFDI.comprobante.Moneda = xtr.GetAttribute("Moneda");
decimal SubTotal = 0;
decimal.TryParse(xtr.GetAttribute("SubTotal"), out SubTotal);
xmlCFDI.comprobante.SubTotal = SubTotal;
decimal Total = 0;
decimal.TryParse(xtr.GetAttribute("Total"), out Total);
xmlCFDI.comprobante.Total = Total;
decimal Descuento = 0;
decimal.TryParse(xtr.GetAttribute("Descuento"), out Descuento);
xmlCFDI.comprobante.Descuento = Descuento;
decimal TipoCambio = 0;
decimal.TryParse(xtr.GetAttribute("TipoCambio"), out TipoCambio);
xmlCFDI.comprobante.TipoCambio = TipoCambio;
xmlCFDI.comprobante.TipoDeComprobante = xtr.GetAttribute("TipoDeComprobante");
xmlCFDI.comprobante.FormaPago = xtr.GetAttribute("FormaPago");
xmlCFDI.comprobante.MetodoPago = xtr.GetAttribute("MetodoPago");
xmlCFDI.comprobante.CondicionesDePago = xtr.GetAttribute("CondicionesDePago");
xmlCFDI.comprobante.LugarExpedicion = xtr.GetAttribute("LugarExpedicion");
xmlCFDI.comprobante.Confirmacion = xtr.GetAttribute("Confirmacion");
xmlCFDI.comprobante.NoCertificado = xtr.GetAttribute("NoCertificado");
xmlCFDI.comprobante.Sello = xtr.GetAttribute("Sello");
xmlCFDI.comprobante.Certificado = xtr.GetAttribute("Certificado");
int Nivel = xtr.Depth;
bool cont = xtr.MoveToFirstAttribute();
while (cont)
{
switch (xtr.Name.ToUpper())
{
case "XMLNS:CFDI": xmlCFDI.comprobante.xmlns_cfdi = xtr.Value; break;
case "XMLNS:XSI": xmlCFDI.comprobante.xmlns_xsi = xtr.Value; break;
case "XSI:SCHEMALOCATION": xmlCFDI.comprobante.xsi_schemaLocation = xtr.Value; break;
case "VERSION": xmlCFDI.comprobante.Version = xtr.Value; break;
case "SERIE": xmlCFDI.comprobante.Serie = xtr.Value; break;
case "FOLIO": xmlCFDI.comprobante.Folio = xtr.Value; break;
case "FECHA": xmlCFDI.comprobante.Fecha = xtr.Value; break;
case "MONEDA": xmlCFDI.comprobante.Moneda = xtr.Value; break;
case "SUBTOTAL": decimal SubTotal = 0; decimal.TryParse(xtr.Value, out SubTotal); xmlCFDI.comprobante.SubTotal = SubTotal; break;
case "TOTAL": decimal Total = 0; decimal.TryParse(xtr.Value, out Total); xmlCFDI.comprobante.Total = Total; break;
case "DESCUENTO": decimal Descuento = 0; decimal.TryParse(xtr.Value, out Descuento); xmlCFDI.comprobante.Descuento = Descuento; break;
case "TIPOCAMBIO": decimal TipoCambio = 0; decimal.TryParse(xtr.Value, out TipoCambio); xmlCFDI.comprobante.TipoCambio = TipoCambio; break;
case "TIPODECOMPROBANTE": xmlCFDI.comprobante.TipoDeComprobante = xtr.Value; break;
case "FORMAPAGO": xmlCFDI.comprobante.FormaPago = xtr.Value; break;
case "FORMADEPAGO": xmlCFDI.comprobante.FormaPago = xtr.Value; break;
case "METODOPAGO": xmlCFDI.comprobante.MetodoPago = xtr.Value; break;
case "METODODEPAGO": xmlCFDI.comprobante.MetodoPago = xtr.Value; break;
case "CONDICIONESDEPAGO": xmlCFDI.comprobante.CondicionesDePago = xtr.Value; break;
case "LUGAREXPEDICION": xmlCFDI.comprobante.LugarExpedicion = xtr.Value; break;
case "CONFIRMACION": xmlCFDI.comprobante.Confirmacion = xtr.Value; break;
case "NOCERTIFICADO": xmlCFDI.comprobante.NoCertificado = xtr.Value; break;
case "SELLO": xmlCFDI.comprobante.Sello = xtr.Value; break;
case "CERTIFICADO": xmlCFDI.comprobante.Certificado = xtr.Value; break;
}
cont = xtr.MoveToNextAttribute();
}
cont = xtr.MoveToFirstAttribute();
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
while (canread && xtr.Depth > Nivel)
{
@@ -727,8 +791,18 @@ namespace ADS_CFDI_SAT
{
if (xtr.NodeType == XmlNodeType.Element && xtr.Name == keyCfdiRelacionados)
{
string TipoRelacion = xtr.GetAttribute("TipoRelacion");
int cDepth = xtr.Depth;
string TipoRelacion = null;
cont = xtr.MoveToFirstAttribute();
while (cont)
{
switch (xtr.Name.ToUpper())
{
case "TIPORELACION": TipoRelacion = xtr.Value; break;
}
cont = xtr.MoveToNextAttribute();
}
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
while (canread && xtr.Depth > cDepth)
{
@@ -745,22 +819,40 @@ namespace ADS_CFDI_SAT
}
if (xtr.NodeType == XmlNodeType.Element && xtr.Name == keyEmisor)
{
xmlCFDI.emisor.RegimenFiscal = xtr.GetAttribute("RegimenFiscal");
xmlCFDI.emisor.Nombre = xtr.GetAttribute("Nombre");
xmlCFDI.emisor.Rfc = xtr.GetAttribute("Rfc");
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
int curentNivel = xtr.Depth;
cont = xtr.MoveToFirstAttribute();
while (cont)
{
switch (xtr.Name.ToUpper())
{
case "REGIMENFISCAL": xmlCFDI.emisor.RegimenFiscal = xtr.Value; break;
case "NOMBRE": xmlCFDI.emisor.Nombre = xtr.Value; break;
case "RFC": xmlCFDI.emisor.Rfc = xtr.Value; break;
}
cont = xtr.MoveToNextAttribute();
}
while ((canread = xtr.Read()) && !(xtr.NodeType == XmlNodeType.Element && curentNivel >= xtr.Depth)) { }//continua hasta que no tenga nodos y (el nodo sea tipo elemnto y ete en el mismo nivel)
}
if (xtr.NodeType == XmlNodeType.Element && xtr.Name == keyReceptor)
{
xmlCFDI.receptor.Rfc = xtr.GetAttribute("Rfc");
xmlCFDI.receptor.Nombre = xtr.GetAttribute("Nombre");
xmlCFDI.receptor.ResidenciaFiscal = xtr.GetAttribute("ResidenciaFiscal");
xmlCFDI.receptor.NumRegIdTrib = xtr.GetAttribute("NumRegIdTrib");
xmlCFDI.receptor.UsoCFDI = xtr.GetAttribute("UsoCFDI");
int curentNivel = xtr.Depth;
cont = xtr.MoveToFirstAttribute();
while (cont)
{
switch (xtr.Name.ToUpper())
{
case "RFC": xmlCFDI.receptor.Rfc = xtr.Value; break;
case "NOMBRE": xmlCFDI.receptor.Nombre = xtr.Value; break;
case "RESIDENCIAFISCAL": xmlCFDI.receptor.ResidenciaFiscal = xtr.Value; break;
case "NUMREGIDTRIB": xmlCFDI.receptor.NumRegIdTrib = xtr.Value; break;
case "USOCFDI": xmlCFDI.receptor.UsoCFDI = xtr.Value; break;
}
cont = xtr.MoveToNextAttribute();
}
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
while ((canread = xtr.Read()) && !(xtr.NodeType == XmlNodeType.Element && curentNivel >= xtr.Depth)) { }//continua hasta que no tenga nodos y (el nodo sea tipo elemnto y ete en el mismo nivel)
}
if (xtr.NodeType == XmlNodeType.Element && xtr.Name == keyConceptos)
{
@@ -770,25 +862,27 @@ namespace ADS_CFDI_SAT
{
if (xtr.Name == "cfdi:Concepto")
{
CFDIConcepto concepto = new CFDIConcepto();
concepto.ClaveProdServ = xtr.GetAttribute("ClaveProdServ");
concepto.NoIdentificacion = xtr.GetAttribute("NoIdentificacion");
concepto.Cantidad = xtr.GetAttribute("Cantidad");
concepto.ClaveUnidad = xtr.GetAttribute("ClaveUnidad");
concepto.Unidad = xtr.GetAttribute("Unidad");
decimal ValorUnitario = 0;
decimal.TryParse(xtr.GetAttribute("ValorUnitario"), out ValorUnitario);
concepto.ValorUnitario = ValorUnitario;
decimal Importe = 0;
decimal.TryParse(xtr.GetAttribute("Importe"), out Importe);
concepto.Importe = Importe;
decimal DDescuento = 0;
decimal.TryParse(xtr.GetAttribute("Descuento"), out DDescuento);
concepto.Descuento = DDescuento;
concepto.Descripcion = xtr.GetAttribute("Descripcion");
int cDepthb = xtr.Depth;
CFDIConcepto concepto = new CFDIConcepto();
cont = xtr.MoveToFirstAttribute();
while (cont)
{
switch (xtr.Name.ToUpper())
{
case "CLAVEPRODSERV": concepto.ClaveProdServ = xtr.Value; break;
case "NOIDENTIFICACION": concepto.NoIdentificacion = xtr.Value; break;
case "CANTIDAD": concepto.Cantidad = xtr.Value; break;
case "CLAVEUNIDAD": concepto.ClaveUnidad = xtr.Value; break;
case "UNIDAD": concepto.Unidad = xtr.Value; break;
case "VALORUNITARIO": decimal ValorUnitario = 0; decimal.TryParse(xtr.Value, out ValorUnitario); concepto.ValorUnitario = ValorUnitario; ; break;
case "IMPORTE": decimal Importe = 0; decimal.TryParse(xtr.Value, out Importe); concepto.Importe = Importe; ; break;
case "DESCUENTO": decimal DDescuento = 0; decimal.TryParse(xtr.Value, out DDescuento); concepto.Descuento = DDescuento; ; break;
case "DESCRIPCION": concepto.Descripcion = xtr.Value; break;
}
cont = xtr.MoveToNextAttribute();
}
xtr.MoveToFirstAttribute();
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
while (canread && xtr.Depth > cDepthb)
{
@@ -850,14 +944,14 @@ namespace ADS_CFDI_SAT
while (canread && xtr.Depth > cDepth)
{
CFDIImpuesto impuest = new CFDIImpuesto();
if (xtr.Name == "cfdi:Traslado" || xtr.Name == "cfdi:Retencion")
if (xtr.Name == "cfdi:Traslado" || xtr.Name == "cfdi:Retencion" && xmlCFDI.comprobante.Version != null)
{
impuest.Tipo = xtr.LocalName == "Traslado" ? "Traslados" : (xtr.LocalName == "Retencion" ? "Retenciones" : "");
impuest.Impuesto = xtr.GetAttribute("Impuesto");
impuest.Impuesto = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("Impuesto") : xtr.GetAttribute("impuesto");
impuest.TipoFactor = xtr.GetAttribute("TipoFactor");
impuest.TasaOCuota = xtr.GetAttribute("TasaOCuota");
impuest.TasaOCuota = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("TasaOCuota") : xtr.GetAttribute("tasa");
decimal ImImporte = 0;
decimal.TryParse(xtr.GetAttribute("Importe"), out ImImporte);
decimal.TryParse((xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("Importe") : xtr.GetAttribute("importe")), out ImImporte);
impuest.Importe = ImImporte;
xmlCFDI.Impuestos.Add(impuest);
}
@@ -871,7 +965,7 @@ namespace ADS_CFDI_SAT
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
while (canread && xtr.Depth > cDepth)
{
if (xtr.NodeType == XmlNodeType.Element && xtr.LocalName == "TimbreFiscalDigital")
if (xtr.NodeType == XmlNodeType.Element && xtr.LocalName == "TimbreFiscalDigital" && xmlCFDI.comprobante.Version != null)
{
xmlCFDI.complemento.xmlns_tfd = xtr.GetAttribute("xmlns:tfd");
xmlCFDI.complemento.xsi_schemaLocation = xtr.GetAttribute("xsi:schemaLocation");
@@ -879,9 +973,9 @@ namespace ADS_CFDI_SAT
xmlCFDI.complemento.UUID = xtr.GetAttribute("UUID");
xmlCFDI.complemento.FechaTimbrado = xtr.GetAttribute("FechaTimbrado");
xmlCFDI.complemento.RfcProvCertif = xtr.GetAttribute("RfcProvCertif");
xmlCFDI.complemento.SelloCFD = xtr.GetAttribute("SelloCFD");
xmlCFDI.complemento.NoCertificadoSAT = xtr.GetAttribute("NoCertificadoSAT");
xmlCFDI.complemento.SelloSAT = xtr.GetAttribute("SelloSAT");
xmlCFDI.complemento.SelloCFD = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("SelloCFD") : xtr.GetAttribute("selloCFD");
xmlCFDI.complemento.NoCertificadoSAT = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("NoCertificadoSAT") : xtr.GetAttribute("noCertificadoSAT");
xmlCFDI.complemento.SelloSAT = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("SelloSAT") : xtr.GetAttribute("selloSAT");
}
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
@@ -897,10 +991,8 @@ namespace ADS_CFDI_SAT
}
}
}
if (xmlCFDI.comprobante.Version == "3.3")
if (xmlCFDI.comprobante.Version == "3.3" || xmlCFDI.comprobante.Version == "3.2")
{
return xmlCFDI;
}
@@ -914,7 +1006,7 @@ namespace ADS_CFDI_SAT
public void ImprimirPDF(string NombreArchivo)
{
XmlSatCFDI objxml = this;
string rutaReporte = string.Format("{0}{1}", Directory.GetParent(System.Reflection.Assembly.GetExecutingAssembly().Location).FullName, "\\Empresas\\Grales\\Formatos\\CFDIV3.rdlc");
string rutaReporte = string.Format("{0}{1}", Directory.GetParent(System.Reflection.Assembly.GetExecutingAssembly().Location).Parent.FullName, "\\Empresas\\Grales\\Formatos\\CFDIV3.rdlc");
ClbNegBICFDv3_2.ClsNegCBBGenerar QR = new ClbNegBICFDv3_2.ClsNegCBBGenerar();
@@ -1081,44 +1173,6 @@ namespace ADS_CFDI_SAT
public decimal Descuento { get; set; }
public decimal TipoCambio { get; set; }
public string TipoDeComprobante { get; set; }
public string TipoDeComprobanteSIG
{
get
{
string retorno = "";
if (Version == "3.3")
{
switch (TipoDeComprobante)
{
case "I":
retorno = "Ing";
break;
case "E":
retorno = "Egs";
break;
case "P":
retorno = "PA";
break;
//case "T":
// retorno = "Traslado";
// break;
//case "N":
// retorno = "Nómina";
// break;
default:
break;
}
}
else { retorno = TipoDeComprobante; }
return retorno;
}
}
public string TipoDeComprobanteTexto
{
get
@@ -1149,6 +1203,89 @@ namespace ADS_CFDI_SAT
break;
}
}
if (Version == "3.2")
{
switch (TipoDeComprobante)
{
case "ingreso":
retorno = "Ing";
break;
case "egreso":
retorno = "Egs";
break;
case "P":
retorno = "PA";
break;
//case "T":
// retorno = "Traslado";
// break;
//case "N":
// retorno = "Nómina";
// break;
default:
retorno = TipoDeComprobante;
break;
}
}
else { retorno = TipoDeComprobante; }
return retorno;
}
}
public string TipoDeComprobanteSIG
{
get
{
string retorno = "";
if (Version == "3.3")
{
switch (TipoDeComprobante)
{
case "I":
retorno = "Ing";
break;
case "E":
retorno = "Egs";
break;
case "P":
retorno = "PA";
break;
//case "T":
// retorno = "Traslado";
// break;
//case "N":
// retorno = "Nómina";
// break;
default:
break;
}
}
if (Version == "3.2")
{
switch (TipoDeComprobante)
{
case "ingreso":
retorno = "Ing";
break;
case "egreso":
retorno = "Egs";
break;
case "P":
retorno = "PA";
break;
//case "T":
// retorno = "Traslado";
// break;
//case "N":
// retorno = "Nómina";
// break;
default:
break;
}
}
else { retorno = TipoDeComprobante; }
return retorno;
}
@@ -1184,6 +1321,7 @@ namespace ADS_CFDI_SAT
case "30": retorno = "Aplicación de anticipos"; break;
case "31": retorno = "Intermediario pagos"; break;
case "99": retorno = "Por definir"; break;
default: retorno = FormaPago; break;
}
return retorno;
@@ -1200,6 +1338,7 @@ namespace ADS_CFDI_SAT
{
case "PUE": retorno = "Pago en una sola exhibición"; break;
case "PPD": retorno = "Pago en parcialidades o diferido"; break;
default: retorno = MetodoPago; break;
}
return retorno;
}
@@ -1487,4 +1626,8 @@ namespace ADS_CFDI_SAT
public decimal Impuesto_Importe { get; set; }
}
}*/
}
*/

File diff suppressed because it is too large Load Diff