prepolizas negativas auxiliar compras
This commit is contained in:
@@ -25,11 +25,11 @@ Public Class ClsInventarios
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Sub RollBack()
|
Public Sub RollBack()
|
||||||
SqlTransacc.Rollback()
|
If SqlTransacc.Connection IsNot Nothing Then SqlTransacc.Rollback()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Sub Commit()
|
Public Sub Commit()
|
||||||
SqlTransacc.Commit()
|
If SqlTransacc.Connection IsNot Nothing Then SqlTransacc.Commit()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
#Region " PROPIEDADES "
|
#Region " PROPIEDADES "
|
||||||
|
|||||||
@@ -2681,7 +2681,7 @@ Namespace Modelos
|
|||||||
CveCuentaContabilizacion = 0
|
CveCuentaContabilizacion = 0
|
||||||
End If
|
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
|
ErrorPrepoliza = True
|
||||||
Else
|
Else
|
||||||
ObjFactura.SeGuardoPrePoliza = True
|
ObjFactura.SeGuardoPrePoliza = True
|
||||||
@@ -2750,8 +2750,8 @@ Namespace Modelos
|
|||||||
If idCuentaContabilizacion > 0 Then
|
If idCuentaContabilizacion > 0 Then
|
||||||
If ObjConta.ContabilizarPrePoliza(ObjFactura.CvePrePoliza, ObjFactura.CveUsuario, UsuarioActual.Empresa, ObjConta:=objContPaqi) Then
|
If ObjConta.ContabilizarPrePoliza(ObjFactura.CvePrePoliza, ObjFactura.CveUsuario, UsuarioActual.Empresa, ObjConta:=objContPaqi) Then
|
||||||
Else
|
Else
|
||||||
ErrorList.Add("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico")
|
'ErrorList.Add("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico")
|
||||||
ErrorPrepoliza = True
|
'ErrorPrepoliza = True
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
ErrorList.Add(String.Format("Falta asignación de las siguientes cuentas contables: {0}", CuentasContablesInvalidas))
|
ErrorList.Add(String.Format("Falta asignación de las siguientes cuentas contables: {0}", CuentasContablesInvalidas))
|
||||||
|
|||||||
@@ -3803,7 +3803,7 @@ Partial Class Bancos_IE
|
|||||||
Banc.IniciaTransacSQL()
|
Banc.IniciaTransacSQL()
|
||||||
|
|
||||||
Dim ObjAC As ClsContPAQi = Nothing
|
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 = New ClsContPAQi(UsuarioActual.Empresa)
|
||||||
ObjAC.IniciaTransacSQL()
|
ObjAC.IniciaTransacSQL()
|
||||||
End If
|
End If
|
||||||
@@ -3814,7 +3814,7 @@ Partial Class Bancos_IE
|
|||||||
Dim IdPolizaNueva = -1
|
Dim IdPolizaNueva = -1
|
||||||
Dim FolioPolizaNueva = -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
|
If ObjAC Is Nothing Then
|
||||||
ErrorCancelar = True
|
ErrorCancelar = True
|
||||||
@@ -4013,7 +4013,7 @@ Partial Class Bancos_IE
|
|||||||
Dim ObjConta As New ClsContabilidad(Banc.IniciaTransacSQL)
|
Dim ObjConta As New ClsContabilidad(Banc.IniciaTransacSQL)
|
||||||
|
|
||||||
Dim ObjAC As ClsContPAQi = Nothing
|
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 = New ClsContPAQi(UsuarioActual.Empresa)
|
||||||
ObjAC.IniciaTransacSQL()
|
ObjAC.IniciaTransacSQL()
|
||||||
End If
|
End If
|
||||||
@@ -4023,7 +4023,7 @@ Partial Class Bancos_IE
|
|||||||
Dim IdPolizaNueva = -1
|
Dim IdPolizaNueva = -1
|
||||||
Dim FolioPolizaNueva = -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
|
If ObjAC Is Nothing Then
|
||||||
ErrorCancelar = True
|
ErrorCancelar = True
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -6496,14 +6496,14 @@ Partial Class Compras_Compras
|
|||||||
Dim CvePrePolizaTemp = ObjConta.AddPrePolizas("Compras/Registrar-NC", If(EsContado And CvePlantillaPrePoliza = 1, 2, CvePlantillaPrePoliza), ImporteCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, TxtFecha.Text.ToDate, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa))
|
Dim CvePrePolizaTemp = ObjConta.AddPrePolizas("Compras/Registrar-NC", If(EsContado And CvePlantillaPrePoliza = 1, 2, CvePlantillaPrePoliza), ImporteCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, TxtFecha.Text.ToDate, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa))
|
||||||
Dim importeMovimientoNC = Gvr.FCTextBox("TxtImporte").Text.ToDecimal
|
Dim importeMovimientoNC = Gvr.FCTextBox("TxtImporte").Text.ToDecimal
|
||||||
Dim importeMNNC = importeMovimientoNC * tipoCambioActual * Multiplicador
|
Dim importeMNNC = importeMovimientoNC * tipoCambioActual * Multiplicador
|
||||||
Dim TipoCambioNC = Gvr.DataKey("TipoCambio").ToDecimal
|
Dim TipoCambioFactura = Gvr.DataKey("TipoCambio").ToDecimal
|
||||||
|
|
||||||
IdCtaContable = CtaProveedorExtranjera
|
IdCtaContable = CtaProveedorExtranjera
|
||||||
CveCuenta = CveCuentaProveedorExtranjera
|
CveCuenta = CveCuentaProveedorExtranjera
|
||||||
If ObjConta.AddPrePolizasDetalle(CvePrePolizaTemp, False, importeMovimientoNC, Referencia, 17, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CveAcreedor:=CveAcreedor, CvePersonal:=CvePersonal, CveColectiva:=CveColectiva, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, CveCuenta:=CveCuenta, Contabilizable:=SeContabiliza) Then
|
If ObjConta.AddPrePolizasDetalle(CvePrePolizaTemp, False, importeMovimientoNC, Referencia, 17, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CveAcreedor:=CveAcreedor, CvePersonal:=CvePersonal, CveColectiva:=CveColectiva, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioFactura, CveCuenta:=CveCuenta, Contabilizable:=SeContabiliza) Then
|
||||||
IdCtaContable = CtaProveedorComplementaria
|
IdCtaContable = CtaProveedorComplementaria
|
||||||
CveCuenta = CveCuentaProveedorComplementaria
|
CveCuenta = CveCuentaProveedorComplementaria
|
||||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaTemp, False, importeMNNC - importeMovimientoNC, Referencia, 206, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CveAcreedor:=CveAcreedor, CvePersonal:=CvePersonal, CveColectiva:=CveColectiva, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, CveCuenta:=CveCuenta, Contabilizable:=SeContabiliza) Then
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaTemp, False, importeMNNC - importeMovimientoNC, Referencia, 206, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CveAcreedor:=CveAcreedor, CvePersonal:=CvePersonal, CveColectiva:=CveColectiva, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioFactura, CveCuenta:=CveCuenta, Contabilizable:=SeContabiliza) Then
|
||||||
ErrorPrepoliza = True
|
ErrorPrepoliza = True
|
||||||
Exit For
|
Exit For
|
||||||
End If
|
End If
|
||||||
@@ -6513,13 +6513,13 @@ Partial Class Compras_Compras
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
importeMNNC = importeMovimientoNC * TipoCambioNC * Multiplicador
|
importeMNNC = importeMovimientoNC * TipoCambioFactura * Multiplicador
|
||||||
IdCtaContable = CtaProveedorExtranjera
|
IdCtaContable = CtaProveedorExtranjera
|
||||||
CveCuenta = CveCuentaProveedorExtranjera
|
CveCuenta = CveCuentaProveedorExtranjera
|
||||||
If ObjConta.AddPrePolizasDetalle(CvePrePolizaTemp, True, importeMovimientoNC, Referencia, 60, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CveAcreedor:=CveAcreedor, CvePersonal:=CvePersonal, CveColectiva:=CveColectiva, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, CveCuenta:=CveCuenta, Contabilizable:=SeContabiliza) Then
|
If ObjConta.AddPrePolizasDetalle(CvePrePolizaTemp, True, importeMovimientoNC, Referencia, 60, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CveAcreedor:=CveAcreedor, CvePersonal:=CvePersonal, CveColectiva:=CveColectiva, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, CveCuenta:=CveCuenta, Contabilizable:=SeContabiliza) Then
|
||||||
IdCtaContable = CtaProveedorComplementaria
|
IdCtaContable = CtaProveedorComplementaria
|
||||||
CveCuenta = CveCuentaProveedorComplementaria
|
CveCuenta = CveCuentaProveedorComplementaria
|
||||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaTemp, True, importeMNNC - importeMovimientoNC, Referencia, 235, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CveAcreedor:=CveAcreedor, CvePersonal:=CvePersonal, CveColectiva:=CveColectiva, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, CveCuenta:=CveCuenta, Contabilizable:=SeContabiliza) Then
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaTemp, True, importeMNNC - importeMovimientoNC, Referencia, 235, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CveAcreedor:=CveAcreedor, CvePersonal:=CvePersonal, CveColectiva:=CveColectiva, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, CveCuenta:=CveCuenta, Contabilizable:=SeContabiliza) Then
|
||||||
ErrorPrepoliza = True
|
ErrorPrepoliza = True
|
||||||
Exit For
|
Exit For
|
||||||
End If
|
End If
|
||||||
@@ -6529,8 +6529,8 @@ Partial Class Compras_Compras
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
' FLUCTUACION CAMBIARIA
|
' FLUCTUACION CAMBIARIA
|
||||||
If tipoCambioActual <> TipoCambioNC Then
|
If tipoCambioActual <> TipoCambioFactura Then
|
||||||
importeMovimiento = (importeMovimientoNC * tipoCambioActual) - (importeMovimientoNC * TipoCambioNC)
|
importeMovimiento = (importeMovimientoNC * TipoCambioFactura) - (importeMovimientoNC * tipoCambioActual)
|
||||||
|
|
||||||
If importeMovimiento > 0 Then
|
If importeMovimiento > 0 Then
|
||||||
ConceptoContable = 64
|
ConceptoContable = 64
|
||||||
|
|||||||
@@ -43,11 +43,12 @@
|
|||||||
<asp:ListItem Value="4" Text="Factura - Cliente"></asp:ListItem>
|
<asp:ListItem Value="4" Text="Factura - Cliente"></asp:ListItem>
|
||||||
<asp:ListItem Value="5" Text="Productos y Sevicios" ></asp:ListItem>
|
<asp:ListItem Value="5" Text="Productos y Sevicios" ></asp:ListItem>
|
||||||
<asp:ListItem Value="6" Text="RH - Personal"></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="7" Text="AF - Activos Fijos" Enabled="false"></asp:ListItem>
|
||||||
<asp:ListItem Value="8" Text="Contabilidad - Cuentas Contables" Enabled="True"></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="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="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="11" Text="ContaSIG - Saldos Iniciales Cuentas" Enabled="True"></asp:ListItem>
|
||||||
|
<asp:ListItem Value="12" Text="Almacen" Enabled="True"></asp:ListItem>
|
||||||
</asp:RadioButtonList>
|
</asp:RadioButtonList>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -449,7 +449,26 @@ Partial Class General_SaldosIniciales
|
|||||||
Alert("El nombre de la diescisieteava columna debe ser 'Clave Unidad'. Favor de corregirlo", TipoMensaje.MsgError)
|
Alert("El nombre de la diescisieteava columna debe ser 'Clave Unidad'. Favor de corregirlo", TipoMensaje.MsgError)
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
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
|
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,
|
'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
|
' CveTipoPS:=CveTipoPS, CveMarca:=CveMarca, CveTamaño:=CveTamaño, CveMedida:=CveMedida) Then
|
||||||
ErrorPS = True
|
ErrorPS = True
|
||||||
Codigo.GuardaLog
|
Codigo.GuardaLog
|
||||||
Exit For
|
Exit For
|
||||||
Else
|
Else
|
||||||
Contador += 1
|
Contador += 1
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
If ObjPS.AddPS(CveClasificacion, 1, CveUnidadMedida, Codigo, "", "", Descripcion, 0, 0, 0, False, 0, False, True, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, 1,
|
If ObjPS.AddPS(CveClasificacion, 1, CveUnidadMedida, Codigo, "", "", Descripcion, 0, 0, 0, False, 0, False, True, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, 1,
|
||||||
@@ -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 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 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
|
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
|
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 IEPS As Decimal = Row("IEPS").ToString.ToDecimal
|
||||||
Dim CveClienteSucursal As Integer = Row("CveClienteSucursal").ToString.ToEntero
|
Dim CveClienteSucursal As Integer = Row("CveClienteSucursal").ToString.ToEntero
|
||||||
|
|
||||||
GuardaLog(Sucursal + "-" + Row("Sucursal").ToString)
|
GuardaLog(Sucursal + "-" + Row("Sucursal").ToString)
|
||||||
'Temporalmente SE BORRARA
|
'Temporalmente SE BORRARA
|
||||||
Dim Transaccion As String = "" ' Row("Transaccion2").ToString
|
Dim Transaccion As String = "" ' Row("Transaccion2").ToString
|
||||||
Dim Folio2 As String = "" ' Row("Folio2").ToString
|
Dim Folio2 As String = "" ' Row("Folio2").ToString
|
||||||
@@ -1501,7 +1520,52 @@ Partial Class General_SaldosIniciales
|
|||||||
End Try
|
End Try
|
||||||
|
|
||||||
ObjConta.Dispose()
|
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
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -1528,6 +1592,8 @@ Partial Class General_SaldosIniciales
|
|||||||
Directorio = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\SaldosIniciales\FormatoContabilidad.xlsx"
|
Directorio = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\SaldosIniciales\FormatoContabilidad.xlsx"
|
||||||
ElseIf RblFormato.SelectedValue = "9" Then
|
ElseIf RblFormato.SelectedValue = "9" Then
|
||||||
Directorio = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\SaldosIniciales\FormatoContabilidad.xlsx"
|
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
|
End If
|
||||||
|
|
||||||
Dim Archivo As New IO.FileInfo(Directorio)
|
Dim Archivo As New IO.FileInfo(Directorio)
|
||||||
|
|||||||
@@ -80,6 +80,7 @@
|
|||||||
<div class="portlet-title portlet-filterT smalltitle">
|
<div class="portlet-title portlet-filterT smalltitle">
|
||||||
<div class="tools">
|
<div class="tools">
|
||||||
<asp:Button ID="btConsultar" CssClass="btn btn-primary" runat="server" Text="Consultar" /></td>
|
<asp:Button ID="btConsultar" CssClass="btn btn-primary" runat="server" Text="Consultar" /></td>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="titlefiltros caption ">
|
<div class="titlefiltros caption ">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@@ -89,7 +90,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-1 truncate" id="DivProveedor1" runat="server" visible="false" style="text-align: right!important">Proveedor:</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">
|
<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>
|
<ADS:Dropdownlost ID="DdlProveedor" runat="server" CssStyle="width: 100%;" Width="100%" DataTextField="RazonSocial" DataValueField="CveProveedor"></ADS:Dropdownlost>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-1 truncate" style="text-align: right!important">Fecha Inicio:</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="col-md-1 col-sm-1">
|
||||||
@@ -132,14 +133,14 @@
|
|||||||
<asp:ListItem Text="Factura" Value="Fac"></asp:ListItem>
|
<asp:ListItem Text="Factura" Value="Fac"></asp:ListItem>
|
||||||
</asp:DropDownList>
|
</asp:DropDownList>
|
||||||
</div>
|
</div>
|
||||||
<%-- <div class="col-md-1 truncate" id="DivSucursal" runat="server" style="text-align: right!important;">Sucursal:</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">
|
<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: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:ListItem Selected="True" Text="Todas" Value="-1"></asp:ListItem>
|
||||||
</asp:DropDownList>
|
</asp:DropDownList>
|
||||||
</div>--%>
|
</div>--%>
|
||||||
<div class="col-md-1 truncate" id="DivSubProyecto" runat="server" style="text-align: right!important;">Proyecto:</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" >
|
<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: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:ListItem Selected="true" Text="Seleccione" Value="-1"></asp:ListItem>
|
||||||
</asp:DropDownList>
|
</asp:DropDownList>
|
||||||
@@ -183,12 +184,19 @@
|
|||||||
</div>
|
</div>
|
||||||
<asp:UpdatePanel ID="UpDatosGvCompras" runat="server" UpdateMode="Conditional">
|
<asp:UpdatePanel ID="UpDatosGvCompras" runat="server" UpdateMode="Conditional">
|
||||||
<ContentTemplate>
|
<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">
|
<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>
|
<Columns>
|
||||||
<asp:BoundField HeaderText="Cantidad Solicitada" DataField="CantidadC" DataFormatString="{0:#,##0.##}" ItemStyle-HorizontalAlign="Right"/>
|
<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="Cantidad Restante" DataField="CantidadF" DataFormatString="{0:#,##0.##}" ItemStyle-HorizontalAlign="Right" />
|
||||||
<asp:BoundField HeaderText="Proveedor/Producto ó Servicio" DataField="CodigoPS" ItemStyle-HorizontalAlign="Left"/>
|
<asp:BoundField HeaderText="Proveedor/Producto ó Servicio" DataField="CodigoPS" ItemStyle-HorizontalAlign="Left" />
|
||||||
<asp:BoundField HeaderText="Total" DataField="Total" DataFormatString="{0:#,##0.##}" ItemStyle-HorizontalAlign="Right" />
|
<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>
|
</Columns>
|
||||||
</asp:GridView>
|
</asp:GridView>
|
||||||
</ContentTemplate>
|
</ContentTemplate>
|
||||||
|
|||||||
@@ -71,8 +71,10 @@ Partial Class RepNotasSinAlmacen
|
|||||||
End Sub
|
End Sub
|
||||||
Private Sub CargaPermisos()
|
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
|
GvVentas.Columns(4).Visible = TienePermisoImportes
|
||||||
GvCompras.Columns(3).Visible = TienePermisoImportes
|
GvCompras.Columns(3).Visible = TienePermisoImportes
|
||||||
|
GvCompras.Columns(4).Visible = TienePermisoDesmarcar
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub CargaCombos()
|
Private Sub CargaCombos()
|
||||||
TxtFechaF.Text = Date.Now.ToShortDateString
|
TxtFechaF.Text = Date.Now.ToShortDateString
|
||||||
@@ -276,8 +278,39 @@ Partial Class RepNotasSinAlmacen
|
|||||||
e.Row.Cells(1).Text = e.Row.DBCampo("Fecha").ToDate.ToShortDateString
|
e.Row.Cells(1).Text = e.Row.DBCampo("Fecha").ToDate.ToShortDateString
|
||||||
e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Center
|
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 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
|
End Class
|
||||||
|
|||||||
@@ -828,8 +828,7 @@
|
|||||||
<ajax:FilteredTextBoxExtender ID="SoloNumerosDescuento" runat="server" TargetControlID="TxtDescuentoAdd" FilterType="Custom, Numbers" ValidChars="." />
|
<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>
|
<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>
|
<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>
|
||||||
<td style="text-align: right; padding-right: 7px;">
|
<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>
|
<asp:TextBox runat="server" ID="Total" ClientIDMode="Static" CssClass="alineanum" Width="55px" Height="24px" Enabled="false"></asp:TextBox>
|
||||||
|
|||||||
@@ -40,14 +40,14 @@
|
|||||||
<div class="portlet-title">
|
<div class="portlet-title">
|
||||||
<div class="caption font-blue">
|
<div class="caption font-blue">
|
||||||
<i class="fa fa-file-text-o font-blue"></i>
|
<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>
|
||||||
<div class="tools">
|
<div class="tools">
|
||||||
<a href="javascript:;" class="collapse"></a>
|
<a href="javascript:;" class="collapse"></a>
|
||||||
</div>
|
</div>
|
||||||
<div style="float: right;">
|
<div style="float: right;"><label id="Contador"></label>
|
||||||
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="FiltrarTabla('TxtBusqueda','GVConciliacionemitidasSAT')" style="display: inline-block; margin-right: -20px; width: 150px;">
|
<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')" style="margin-top: -3px;" class="btn btn-circle btn-sm font-bold blue"><i class="icon-magnifier" style="font-weight: bold;"></i></a>
|
<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>
|
</div>
|
||||||
<div class="portlet-body ">
|
<div class="portlet-body ">
|
||||||
@@ -101,11 +101,12 @@
|
|||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
<asp:TemplateField HeaderText="">
|
<asp:TemplateField HeaderText="">
|
||||||
<ItemTemplate>
|
<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>
|
<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>
|
</ItemTemplate>
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
</Columns>
|
</Columns>
|
||||||
|
<HeaderStyle CssClass ="SearchADHeader" />
|
||||||
</asp:GridView>
|
</asp:GridView>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -153,6 +154,15 @@
|
|||||||
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
|
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
|
||||||
<script>
|
<script>
|
||||||
$('#DModalDefaults').modal();
|
$('#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>
|
</script>
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ using Extensiones;
|
|||||||
using System.Data;
|
using System.Data;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using ADSistemaLibrary.SatXml;
|
using ADSistemaLibrary.SatXml;
|
||||||
|
//using ADS_CFDI_SAT;
|
||||||
|
|
||||||
public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
|
public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
|
||||||
{
|
{
|
||||||
@@ -52,6 +53,8 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
|
|||||||
ClsVentas ObjV = new ClsVentas();
|
ClsVentas ObjV = new ClsVentas();
|
||||||
ObjV.ConciliacionemitidasSATGet(UsuarioActual.CveEmpresa);
|
ObjV.ConciliacionemitidasSATGet(UsuarioActual.CveEmpresa);
|
||||||
GVConciliacionemitidasSAT.DataSource = ObjV.DtResultados.FiltraParametros("", "CveVenta");
|
GVConciliacionemitidasSAT.DataSource = ObjV.DtResultados.FiltraParametros("", "CveVenta");
|
||||||
|
Ltlsinregistrar.Text = $"{ObjV.DtResultados.COUNT("FolioFiscal","CveVenta IS NULL")}";
|
||||||
|
ltlTotal.Text = $"{ObjV.DtResultados.Rows.Count}";
|
||||||
ObjV.Dispose();
|
ObjV.Dispose();
|
||||||
GVConciliacionemitidasSAT.DataBind();
|
GVConciliacionemitidasSAT.DataBind();
|
||||||
UpDatosReporte.Update();
|
UpDatosReporte.Update();
|
||||||
@@ -229,6 +232,39 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
|
|||||||
int CvePsReconstruccion = DdlPS.SelectedValue.ToEntero();
|
int CvePsReconstruccion = DdlPS.SelectedValue.ToEntero();
|
||||||
int CveSubProyectoReconstruccion = DdlSubProyectoDatos.SelectedValue.ToEntero();
|
int CveSubProyectoReconstruccion = DdlSubProyectoDatos.SelectedValue.ToEntero();
|
||||||
//Modelos.Factura.MMensajeFactura resp;
|
//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)
|
Modelos.Factura objfact = new Modelos.Factura(UsuarioActual)
|
||||||
{
|
{
|
||||||
TipoMensajeRespuesta = Modelos.TipoMensajeRespuesta.TextoLimpio,//?que es esto
|
TipoMensajeRespuesta = Modelos.TipoMensajeRespuesta.TextoLimpio,//?que es esto
|
||||||
@@ -242,8 +278,8 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
|
|||||||
TipoCambio = objxml.comprobante.TipoCambio,
|
TipoCambio = objxml.comprobante.TipoCambio,
|
||||||
//ConvertirPesos =false,//?para que sirve
|
//ConvertirPesos =false,//?para que sirve
|
||||||
MonedaSAT = objxml.comprobante.Moneda,
|
MonedaSAT = objxml.comprobante.Moneda,
|
||||||
CveMoneda = GlobalDTMonedas.FiltroPrimeroValor("CveMoneda", $" AbreviaturaSAT= '{objxml.comprobante.Moneda}' ").ToEntero(),
|
CveMoneda = GlobalDTMonedas.FiltroPrimeroValor("CveMoneda", $" AbreviaturaSAT= '{Moneda}' ").ToEntero(),
|
||||||
Moneda = GlobalDTMonedas.FiltroPrimeroValor("Moneda", $" AbreviaturaSAT= '{objxml.comprobante.Moneda}' "),
|
Moneda = GlobalDTMonedas.FiltroPrimeroValor("Moneda", $" AbreviaturaSAT= '{Moneda}' "),
|
||||||
TipoDocto = objxml.comprobante.TipoDeComprobanteSIG,
|
TipoDocto = objxml.comprobante.TipoDeComprobanteSIG,
|
||||||
RefDocto = "",
|
RefDocto = "",
|
||||||
CveMesa = -1,
|
CveMesa = -1,
|
||||||
@@ -292,11 +328,11 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
|
|||||||
}
|
}
|
||||||
|
|
||||||
objfact.CveAlmacen = -1;
|
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.FormaPagoSAT33 = objxml.comprobante.FormaPago;
|
||||||
objfact.FormaPago33 = objxml.comprobante.FormaPagoTexto;
|
objfact.FormaPago33 = objxml.comprobante.FormaPagoTexto;
|
||||||
objfact.CveMetodoPago33 = GlobalDTVtaMetodoPago.FiltroPrimeroValor("CveMetodoPago", $" ClaveMetodoPagoSAT = '{objxml.comprobante.MetodoPago}'").ToEntero();
|
objfact.CveMetodoPago33 = GlobalDTVtaMetodoPago.FiltroPrimeroValor("CveMetodoPago", $" ClaveMetodoPagoSAT = '{metododepago}'").ToEntero();
|
||||||
objfact.CveMetodoPago = GlobalDTVtaMetodoPago.FiltroPrimeroValor("CveMetodoPago", $" ClaveMetodoPagoSAT = '{objxml.comprobante.MetodoPago}'").ToEntero();
|
objfact.CveMetodoPago = GlobalDTVtaMetodoPago.FiltroPrimeroValor("CveMetodoPago", $" ClaveMetodoPagoSAT = '{metododepago}'").ToEntero();
|
||||||
objfact.ClaveMetodoPagoSAT = objxml.comprobante.MetodoPago;
|
objfact.ClaveMetodoPagoSAT = objxml.comprobante.MetodoPago;
|
||||||
objfact.MetodoPago33 = objxml.comprobante.MetodoPagoTexto;
|
objfact.MetodoPago33 = objxml.comprobante.MetodoPagoTexto;
|
||||||
objfact.CveUsoCFDI = get_GlobalDTSATUsosCFDI(-1).FiltroPrimeroValor("CveUsoCFDI", $"UsoCFDI = '{objxml.receptor.UsoCFDI}'").ToEntero();
|
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.ClaveUsoCFDI = objxml.receptor.UsoCFDI;
|
||||||
objfact.CveClienteSucursal = -1;
|
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.SubTotal = objxml.comprobante.SubTotal;
|
||||||
objfact.Descuento = objxml.comprobante.Descuento;
|
objfact.Descuento = objxml.comprobante.Descuento;
|
||||||
objfact.Amortizacion = 0;
|
objfact.Amortizacion = 0;
|
||||||
objfact.IVA = objxml.Impuestos.Where(x => x.Impuesto == "002" && x.Tipo == "Traslados").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.Tipo == "Retenciones").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.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").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.Total = objxml.comprobante.Total;
|
||||||
objfact.TotalOtrosConceptos = 0;
|
objfact.TotalOtrosConceptos = 0;
|
||||||
|
|
||||||
@@ -328,7 +364,7 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
|
|||||||
}
|
}
|
||||||
return objfact;
|
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;
|
bool continuar = true;
|
||||||
var TmpDT = new DataTable();
|
var TmpDT = new DataTable();
|
||||||
@@ -433,14 +469,29 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
|
|||||||
|
|
||||||
}
|
}
|
||||||
DrSubProyecto = get_GlobalDTSubProyectos(-1, CveSubProyecto, UsuarioActual.CveEmpresa).Rows[0];
|
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));
|
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)
|
if (continuar)
|
||||||
{
|
{
|
||||||
DrUm = get_GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa).FiltroPrimero(string.Format("CveUnidadMedidaSAT={0}", DrUmSat["CveSATUnidadMedida"]));
|
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)
|
if (continuar)
|
||||||
{
|
{
|
||||||
//no se encontro una undidad de medida para
|
//no se encontro una undidad de medida para
|
||||||
@@ -475,24 +526,34 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
|
|||||||
Row["CveTipoPS"] = DrPS["CveTipoPS"];
|
Row["CveTipoPS"] = DrPS["CveTipoPS"];
|
||||||
Row["CveTipoInvPS"] = DrPS["Inv_CveMetodoInventario"];
|
Row["CveTipoInvPS"] = DrPS["Inv_CveMetodoInventario"];
|
||||||
Row["CveTamaño"] = DrPS["CveTamaño"];
|
Row["CveTamaño"] = DrPS["CveTamaño"];
|
||||||
ADSistemaLibrary.SatXml.CFDIConceptoImpuesto impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "002" && x.Tipo == "Traslado");
|
CFDIConceptoImpuesto impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "002" && x.Tipo == "Traslado");
|
||||||
decimal sumaimpuesto=0;
|
decimal sumaimpuesto = 0;
|
||||||
decimal PorcentajeIVA = 0;
|
decimal PorcentajeIVA = 0;
|
||||||
if (impuesto != null)
|
if (impuesto != null)
|
||||||
{
|
{
|
||||||
decimal decimpuesto = 0;
|
decimal decimpuesto = 0;
|
||||||
decimal.TryParse(impuesto.TasaOCuota, out decimpuesto);
|
decimal.TryParse(impuesto.TasaOCuota, out decimpuesto);
|
||||||
PorcentajeIVA = decimpuesto/100;
|
PorcentajeIVA = decimpuesto / 100;
|
||||||
Row["PorcentajeIVA"] = decimpuesto / 100;
|
Row["PorcentajeIVA"] = PorcentajeIVA;
|
||||||
Row["ImporteIVA"] = decimpuesto / 100;// impuesto.Importe;//Math.Round(item.Importe * (decimpuesto/100), 2);
|
Row["ImporteIVA"] = impuesto.Importe ;// impuesto.Importe;//Math.Round(item.Importe * (decimpuesto/100), 2);
|
||||||
sumaimpuesto += impuesto.Importe;
|
sumaimpuesto += impuesto.Importe;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Row["PorcentajeIVA"] = 0;
|
Row["PorcentajeIVA"] = 0;
|
||||||
Row["ImporteIVA"] = 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");
|
impuesto = item.Impuestos.FirstOrDefault(x => x.Impuesto == "003" && x.Tipo == "Traslado");
|
||||||
if (impuesto != null)
|
if (impuesto != null)
|
||||||
{
|
{
|
||||||
@@ -541,7 +602,7 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
|
|||||||
Row["TipoDescuento"] = "2";
|
Row["TipoDescuento"] = "2";
|
||||||
|
|
||||||
//Row["Total"] = item.Importe - sumaimpuesto;
|
//Row["Total"] = item.Importe - sumaimpuesto;
|
||||||
Row["Total"] = item.Importe /(1+ PorcentajeIVA);
|
Row["Total"] = item.Importe / (1 + PorcentajeIVA);
|
||||||
Row["TotalImporte"] = item.Importe;
|
Row["TotalImporte"] = item.Importe;
|
||||||
|
|
||||||
Row["SATClaveProdServ"] = item.ClaveProdServ;
|
Row["SATClaveProdServ"] = item.ClaveProdServ;
|
||||||
@@ -579,14 +640,12 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
//SatCFDI
|
|
||||||
namespace ADS_CFDI_SAT
|
namespace ADS_CFDI_SAT
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// clase para contener los valores de un xml CFDI
|
/// clase para contener los valores de un xml CFDI cambio norama
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class XmlSatCFDI
|
public class XmlSatCFDI
|
||||||
{
|
{
|
||||||
@@ -660,6 +719,7 @@ namespace ADS_CFDI_SAT
|
|||||||
|
|
||||||
return lcon;
|
return lcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static XmlSatCFDI readXML(string fileUrl)
|
public static XmlSatCFDI readXML(string fileUrl)
|
||||||
{
|
{
|
||||||
XmlSatCFDI xmlCFDI = new XmlSatCFDI();
|
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
|
//(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))
|
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))
|
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)
|
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;
|
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.Read()) && xtr.NodeType != XmlNodeType.Element) { }
|
||||||
while (canread && xtr.Depth > Nivel)
|
while (canread && xtr.Depth > Nivel)
|
||||||
{
|
{
|
||||||
@@ -727,8 +791,18 @@ namespace ADS_CFDI_SAT
|
|||||||
{
|
{
|
||||||
if (xtr.NodeType == XmlNodeType.Element && xtr.Name == keyCfdiRelacionados)
|
if (xtr.NodeType == XmlNodeType.Element && xtr.Name == keyCfdiRelacionados)
|
||||||
{
|
{
|
||||||
string TipoRelacion = xtr.GetAttribute("TipoRelacion");
|
|
||||||
int cDepth = xtr.Depth;
|
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.Read()) && xtr.NodeType != XmlNodeType.Element) { }
|
||||||
while (canread && xtr.Depth > cDepth)
|
while (canread && xtr.Depth > cDepth)
|
||||||
{
|
{
|
||||||
@@ -745,22 +819,40 @@ namespace ADS_CFDI_SAT
|
|||||||
}
|
}
|
||||||
if (xtr.NodeType == XmlNodeType.Element && xtr.Name == keyEmisor)
|
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)
|
if (xtr.NodeType == XmlNodeType.Element && xtr.Name == keyReceptor)
|
||||||
{
|
{
|
||||||
xmlCFDI.receptor.Rfc = xtr.GetAttribute("Rfc");
|
int curentNivel = xtr.Depth;
|
||||||
xmlCFDI.receptor.Nombre = xtr.GetAttribute("Nombre");
|
cont = xtr.MoveToFirstAttribute();
|
||||||
xmlCFDI.receptor.ResidenciaFiscal = xtr.GetAttribute("ResidenciaFiscal");
|
while (cont)
|
||||||
xmlCFDI.receptor.NumRegIdTrib = xtr.GetAttribute("NumRegIdTrib");
|
{
|
||||||
xmlCFDI.receptor.UsoCFDI = xtr.GetAttribute("UsoCFDI");
|
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)
|
if (xtr.NodeType == XmlNodeType.Element && xtr.Name == keyConceptos)
|
||||||
{
|
{
|
||||||
@@ -770,25 +862,27 @@ namespace ADS_CFDI_SAT
|
|||||||
{
|
{
|
||||||
if (xtr.Name == "cfdi:Concepto")
|
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;
|
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.Read()) && xtr.NodeType != XmlNodeType.Element) { }
|
||||||
while (canread && xtr.Depth > cDepthb)
|
while (canread && xtr.Depth > cDepthb)
|
||||||
{
|
{
|
||||||
@@ -850,14 +944,14 @@ namespace ADS_CFDI_SAT
|
|||||||
while (canread && xtr.Depth > cDepth)
|
while (canread && xtr.Depth > cDepth)
|
||||||
{
|
{
|
||||||
CFDIImpuesto impuest = new CFDIImpuesto();
|
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.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.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 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;
|
impuest.Importe = ImImporte;
|
||||||
xmlCFDI.Impuestos.Add(impuest);
|
xmlCFDI.Impuestos.Add(impuest);
|
||||||
}
|
}
|
||||||
@@ -871,7 +965,7 @@ namespace ADS_CFDI_SAT
|
|||||||
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
|
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
|
||||||
while (canread && xtr.Depth > cDepth)
|
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.xmlns_tfd = xtr.GetAttribute("xmlns:tfd");
|
||||||
xmlCFDI.complemento.xsi_schemaLocation = xtr.GetAttribute("xsi:schemaLocation");
|
xmlCFDI.complemento.xsi_schemaLocation = xtr.GetAttribute("xsi:schemaLocation");
|
||||||
@@ -879,9 +973,9 @@ namespace ADS_CFDI_SAT
|
|||||||
xmlCFDI.complemento.UUID = xtr.GetAttribute("UUID");
|
xmlCFDI.complemento.UUID = xtr.GetAttribute("UUID");
|
||||||
xmlCFDI.complemento.FechaTimbrado = xtr.GetAttribute("FechaTimbrado");
|
xmlCFDI.complemento.FechaTimbrado = xtr.GetAttribute("FechaTimbrado");
|
||||||
xmlCFDI.complemento.RfcProvCertif = xtr.GetAttribute("RfcProvCertif");
|
xmlCFDI.complemento.RfcProvCertif = xtr.GetAttribute("RfcProvCertif");
|
||||||
xmlCFDI.complemento.SelloCFD = xtr.GetAttribute("SelloCFD");
|
xmlCFDI.complemento.SelloCFD = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("SelloCFD") : xtr.GetAttribute("selloCFD");
|
||||||
xmlCFDI.complemento.NoCertificadoSAT = xtr.GetAttribute("NoCertificadoSAT");
|
xmlCFDI.complemento.NoCertificadoSAT = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("NoCertificadoSAT") : xtr.GetAttribute("noCertificadoSAT");
|
||||||
xmlCFDI.complemento.SelloSAT = xtr.GetAttribute("SelloSAT");
|
xmlCFDI.complemento.SelloSAT = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("SelloSAT") : xtr.GetAttribute("selloSAT");
|
||||||
|
|
||||||
}
|
}
|
||||||
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
|
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;
|
return xmlCFDI;
|
||||||
}
|
}
|
||||||
@@ -914,7 +1006,7 @@ namespace ADS_CFDI_SAT
|
|||||||
public void ImprimirPDF(string NombreArchivo)
|
public void ImprimirPDF(string NombreArchivo)
|
||||||
{
|
{
|
||||||
XmlSatCFDI objxml = this;
|
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();
|
ClbNegBICFDv3_2.ClsNegCBBGenerar QR = new ClbNegBICFDv3_2.ClsNegCBBGenerar();
|
||||||
@@ -1081,44 +1173,6 @@ namespace ADS_CFDI_SAT
|
|||||||
public decimal Descuento { get; set; }
|
public decimal Descuento { get; set; }
|
||||||
public decimal TipoCambio { get; set; }
|
public decimal TipoCambio { get; set; }
|
||||||
public string TipoDeComprobante { 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
|
public string TipoDeComprobanteTexto
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -1149,6 +1203,89 @@ namespace ADS_CFDI_SAT
|
|||||||
break;
|
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; }
|
else { retorno = TipoDeComprobante; }
|
||||||
return retorno;
|
return retorno;
|
||||||
}
|
}
|
||||||
@@ -1184,6 +1321,7 @@ namespace ADS_CFDI_SAT
|
|||||||
case "30": retorno = "Aplicación de anticipos"; break;
|
case "30": retorno = "Aplicación de anticipos"; break;
|
||||||
case "31": retorno = "Intermediario pagos"; break;
|
case "31": retorno = "Intermediario pagos"; break;
|
||||||
case "99": retorno = "Por definir"; break;
|
case "99": retorno = "Por definir"; break;
|
||||||
|
default: retorno = FormaPago; break;
|
||||||
|
|
||||||
}
|
}
|
||||||
return retorno;
|
return retorno;
|
||||||
@@ -1200,6 +1338,7 @@ namespace ADS_CFDI_SAT
|
|||||||
{
|
{
|
||||||
case "PUE": retorno = "Pago en una sola exhibición"; break;
|
case "PUE": retorno = "Pago en una sola exhibición"; break;
|
||||||
case "PPD": retorno = "Pago en parcialidades o diferido"; break;
|
case "PPD": retorno = "Pago en parcialidades o diferido"; break;
|
||||||
|
default: retorno = MetodoPago; break;
|
||||||
}
|
}
|
||||||
return retorno;
|
return retorno;
|
||||||
}
|
}
|
||||||
@@ -1487,4 +1626,8 @@ namespace ADS_CFDI_SAT
|
|||||||
public decimal Impuesto_Importe { get; set; }
|
public decimal Impuesto_Importe { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
}*/
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
@@ -3398,10 +3398,11 @@ Partial Class Ventas
|
|||||||
' End If
|
' End If
|
||||||
'End If
|
'End If
|
||||||
End If
|
End If
|
||||||
If LblFolioFiscal.Text.Trim = "" Then HplFolioFiscalModal.Visible = True
|
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If DdlTipoComprobante.SelectedValue.Contiene("Egs", "Ing", "Ant", "Dev") AndAlso LblFolioFiscal.Text.Trim = "" Then HplFolioFiscalModal.Visible = True
|
||||||
|
|
||||||
Select Case DbRowVenta("TipoDocto").ToString
|
Select Case DbRowVenta("TipoDocto").ToString
|
||||||
Case "Ing"
|
Case "Ing"
|
||||||
@@ -10680,6 +10681,11 @@ Partial Class Ventas
|
|||||||
#Region " VISTA PREVIA NEW "
|
#Region " VISTA PREVIA NEW "
|
||||||
Private Sub VistaPreviaNew()
|
Private Sub VistaPreviaNew()
|
||||||
|
|
||||||
|
If Not CveCliente > 0 And Not CveEmpresaCRM > 0 Then
|
||||||
|
Alert("Es necesario seleccionar el cliente al cual se le va a facturar.", TipoMensaje.MsgAdvertencia, "AbrirVentana(""/Ventas/PopUpBuscarClientes.aspx?Opt=Fact"", 800, 547, ""N"", ""PopUpBuscar"")")
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
CreaObjetosVenta(True)
|
CreaObjetosVenta(True)
|
||||||
|
|
||||||
If ObjFactura Is Nothing Or ObjFactura.Cliente Is Nothing Then
|
If ObjFactura Is Nothing Or ObjFactura.Cliente Is Nothing Then
|
||||||
@@ -12563,6 +12569,7 @@ Partial Class Ventas
|
|||||||
DdlUnidadMedida.DataBind()
|
DdlUnidadMedida.DataBind()
|
||||||
DdlUnidadMedida.SelectedValueExist(drPS("CveUnidadMedida").ToString)
|
DdlUnidadMedida.SelectedValueExist(drPS("CveUnidadMedida").ToString)
|
||||||
DdlMoneda.SelectedValueExist(drPS("CveMoneda").ToString)
|
DdlMoneda.SelectedValueExist(drPS("CveMoneda").ToString)
|
||||||
|
CambiaMoneda()
|
||||||
'SUGIERE PRECIO
|
'SUGIERE PRECIO
|
||||||
Dim PrecioSugerido = 0.0
|
Dim PrecioSugerido = 0.0
|
||||||
PrecioSugerido = drPS("Precio").ToString.ToDouble
|
PrecioSugerido = drPS("Precio").ToString.ToDouble
|
||||||
@@ -14897,12 +14904,12 @@ Partial Class Ventas
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
Try
|
Try
|
||||||
If ValorInventario <> 0 Then
|
'If ValorInventario <> 0 Then
|
||||||
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, ValorInventario, ObjFactura.SerieFolio, 69, ObjFactura.SerieFolio, ObjFactura.Fecha, IdCtaContable, -1, CveVenta:=CveVenta, CveCliente:=ObjFactura.CveCliente, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimientoInventario, ImporteMX:=ValorInventario, CveCuenta:=CveCuenta, CveSubProyecto:=ObjFactura.CveSubProyecto) Then
|
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, ValorInventario, ObjFactura.SerieFolio, 69, ObjFactura.SerieFolio, ObjFactura.Fecha, IdCtaContable, -1, CveVenta:=CveVenta, CveCliente:=ObjFactura.CveCliente, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimientoInventario, ImporteMX:=ValorInventario, CveCuenta:=CveCuenta, CveSubProyecto:=ObjFactura.CveSubProyecto) Then
|
||||||
OcurrioError = True
|
OcurrioError = True
|
||||||
Exit For
|
Exit For
|
||||||
End If
|
End If
|
||||||
End If
|
'End If
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
OcurrioError = True
|
OcurrioError = True
|
||||||
End Try
|
End Try
|
||||||
|
|||||||
Reference in New Issue
Block a user