Files
SIG/Contabilidad/DiarioAmortizaciones.aspx.vb

1896 lines
105 KiB
VB.net

Imports System.Data
Imports Extensiones
Partial Class Contabilidad_DiarioAmortizaciones
Inherits ClsPaginas
#Region "Propiedades"
Private Property DtDatosFyE As DataTable
Get
Return CType(ViewState("DtDatosFyE"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtDatosFyE") = value
End Set
End Property
Private Property DtDatosFyECompras As DataTable
Get
Return CType(ViewState("DtDatosFyECompras"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtDatosFyECompras") = value
End Set
End Property
Private Property DtDatosAnticipos As DataTable
Get
Return CType(ViewState("DtDatosAnticipos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtDatosAnticipos") = value
End Set
End Property
Private Property DtDatosAnticiposCompras As DataTable
Get
Return CType(ViewState("DtDatosAnticiposCompras"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtDatosAnticiposCompras") = value
End Set
End Property
Private Property DtTiposPoliza As DataTable
Get
Return CType(ViewState("DtTiposPoliza"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtTiposPoliza") = value
End Set
End Property
Private Property DtDatosComprobaciones As DataTable
Get
Return CType(ViewState("DtDatosComprobaciones"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtDatosComprobaciones") = value
End Set
End Property
Private Property DtDatosComprobacionesPagos As DataTable
Get
Return CType(ViewState("DtDatosComprobacionesPagos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtDatosComprobacionesPagos") = value
End Set
End Property
Private Property DtDatosNotasCredito As DataTable
Get
Return CType(ViewState("DtDatosNotasCredito"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtDatosNotasCredito") = value
End Set
End Property
Private Property DtDatosNotasCreditoPagos As DataTable
Get
Return CType(ViewState("DtDatosNotasCreditoPagos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtDatosNotasCreditoPagos") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
TxtFecha.Text = Today.ToShortDateString
DdlProveedores.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
DdlProveedores.DataBind()
TxtFecha.AutoPostBack = True
DtTiposPoliza = Nothing
txtFechaI.Text = NowADS().AddMonths(0).FirstDayOfMonth.ToShortDateString
txtFechaF.Text = NowADS().ToShortDateString
If UsuarioActual.Sesion("DiarioPagos-CveProveedor").ToString <> "" Then DdlProveedores.SelectedValue = UsuarioActual.Sesion("DiarioPagos-CveProveedor").ToString.Trim
If UsuarioActual.Sesion("DiarioPagos-FI").ToString <> "" Then txtFechaI.Text = UsuarioActual.Sesion("DiarioPagos-FI").ToString.Trim
If UsuarioActual.Sesion("DiarioPagos-FF").ToString <> "" Then txtFechaF.Text = UsuarioActual.Sesion("DiarioPagos-FF").ToString.Trim
If UsuarioActual.Empresa.UsaContabilidad Then
Dim Cc As New ClsContPAQi(UsuarioActual.Empresa)
If Cc.GetTiposPoliza(-1, "-1") Then
DdlPolizaTipo.DataSource = Cc.DtResultados
DdlPolizaTipo.DataBind()
DtTiposPoliza = Cc.DtResultados
End If
DdlPolizaTipo.SelectedValue = "2"
'busco si se ocupa el tipo de cambio
Cc.Dispose()
CargaDatos(-1)
Else
Alert("Este módulo requiere el uso de Contabilidad.", TipoMensaje.MsgAdvertencia)
BtnConsultar.Enabled = False
BtnContabilizar.Enabled = False
End If
End If
End Sub
Private Sub CargaDatos(Optional CargaOpcion As Integer = -2)
If CargaOpcion = -2 Then CargaOpcion = Tabs.ActiveTabIndex
Dim Conta As New ClsContabilidad
'cuando se junta el pago y la compra en el mismo listado
Dim ds As DataSet
If CargaOpcion.Contiene(-1, 0) Then
ds = Conta.GetDiarioAmortizacion(DdlProveedores.SelectedValue.ToEntero, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, 1, DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, UsuarioActual.CveEmpresa)
If ds IsNot Nothing AndAlso ds.Tables.Count = 2 Then
DtDatosAnticipos = ds.Tables(0) '.FiltraParametros("CveIEs = 1") ' filtra solo los movimientos de un solo cheque, por ejemplo el pago de varios deudores diversos con el mismo cheque.
DtDatosAnticiposCompras = ds.Tables(1)
GvAnt.DataSource = DtDatosAnticipos
GvAnt.DataBind()
End If
End If
'------------------------------------------ consulto F y E
If CargaOpcion.Contiene(-1, 1) Then
ds = Conta.GetDiarioAmortizacion(DdlProveedores.SelectedValue.ToEntero, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, 2, DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, UsuarioActual.CveEmpresa)
If ds IsNot Nothing AndAlso ds.Tables.Count = 2 Then
DtDatosFyE = ds.Tables(0).FiltraParametros("CveIEs = 1") ' filtra solo los movimientos de un solo cheque, por ejemplo el pago de varios deudores diversos con el mismo cheque.
DtDatosFyECompras = ds.Tables(1)
GvFyE.DataSource = DtDatosFyE
GvFyE.DataBind()
End If
End If
'--------- COMPROBACIONES
If CargaOpcion.Contiene(-1, 2) Then
ds = Conta.GetDiarioPagosCompras(DdlProveedores.SelectedValue.ToEntero, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, 5, DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, UsuarioActual.CveEmpresa)
If ds IsNot Nothing AndAlso ds.Tables.Count = 2 Then
DtDatosComprobacionesPagos = ds.Tables(0)
DtDatosComprobaciones = ds.Tables(1)
GvComp.DataSource = DtDatosComprobaciones.FiltraParametros("CvePS = -1")
GvComp.DataBind()
End If
End If
'--------- NOTAS DE CREDITO
If CargaOpcion.Contiene(-1, 3) Then
ds = Conta.GetDiarioPagosCompras(DdlProveedores.SelectedValue.ToEntero, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, 6, DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, UsuarioActual.CveEmpresa)
If ds IsNot Nothing AndAlso ds.Tables.Count = 2 Then
DtDatosNotasCreditoPagos = ds.Tables(0)
DtDatosNotasCredito = ds.Tables(1)
GvNC.DataSource = DtDatosNotasCreditoPagos
GvNC.DataBind()
End If
End If
' '------------------------------------------ consulto anticipos
UPPDatos.Update()
Conta.Dispose()
End Sub
Protected Sub GvAnt_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvAnt.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.FCDropDownList("DdlPolizaTipo").DataSource = DtTiposPoliza
e.Row.FCDropDownList("DdlPolizaTipo").DataBind()
e.Row.FCDropDownList("DdlPolizaTipo").SelectedValue = "3"
Dim gvC As GridView = e.Row.FCGridView("GvPC")
Dim tdtcompras As DataTable = DtDatosAnticiposCompras.FiltraParametros(String.Format("CveIE = {0} AND CveCompra = {1} AND CvePS = -1 ", e.Row.DBCampo("CveIE"), e.Row.DBCampo("CveCompra")))
gvC.DataSource = tdtcompras
gvC.DataBind()
If e.Row.DBCampo("IdCtaContBancos").ToEntero = 0 Then
'falta vicularse el proveedor
e.Row.FCHyperLink("HplC").ForeColor = Drawing.Color.OrangeRed
e.Row.FCHyperLink("HplC").ToolTip = "Falta vincular la cuenta contable a la cuenta bancaria"
End If
If e.Row.DBCampo("IdCtaContAnticipos").ToEntero = 0 Then
'falta vicularse el proveedor
e.Row.FCHyperLink("HplP").ForeColor = Drawing.Color.OrangeRed
e.Row.FCHyperLink("HplP").ToolTip = "Falta vincular la cuenta contable de anticipos"
End If
If e.Row.DBCampo("ValidoCuenta") = "1" Then
e.Row.FCCheckBox("Chk").Visible = True
''pero si hay compras sin contabilizar, y la factura no tenga completa las clasificaciones
If tdtcompras IsNot Nothing AndAlso tdtcompras.Rows.Count > 0 AndAlso tdtcompras.MIN("Valido") = "0" Then
e.Row.FCCheckBox("Chk").Visible = False
End If
End If
End If
End Sub
Protected Sub GvFyE_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvFyE.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.FCDropDownList("DdlPolizaTipo").DataSource = DtTiposPoliza
e.Row.FCDropDownList("DdlPolizaTipo").DataBind()
e.Row.FCDropDownList("DdlPolizaTipo").SelectedValue = "3"
Dim gvC As GridView = e.Row.FCGridView("GvPC")
Dim dtcompras As DataTable = Nothing
If e.Row.DBCampo("CveIE").ToEntero > 0 Then
dtcompras = DtDatosFyECompras.FiltraParametros(String.Format("CveIE = {0} AND CvePS = -1 ", e.Row.DBCampo("CveIE")))
End If
gvC.DataSource = dtcompras
gvC.DataBind()
If e.Row.DBCampo("IdCtaContBancos").ToEntero = 0 Then
'falta vicularse el proveedor
e.Row.FCHyperLink("HplC").ForeColor = Drawing.Color.OrangeRed
e.Row.FCHyperLink("HplC").ToolTip = "Falta vincular la cuenta contable a la cuenta bancaria"
End If
If e.Row.DBCampo("IdCtaContPersonal").ToEntero = 0 Then
'falta vicularse el proveedor
e.Row.FCHyperLink("HplP").ForeColor = Drawing.Color.OrangeRed
e.Row.FCHyperLink("HplP").ToolTip = "Falta vincular la cuenta contable"
End If
If e.Row.DBCampo("ValidoCuenta") = "1" Then
e.Row.FCCheckBox("Chk").Visible = True
''pero si hay compras sin contabilizar, y la factura no tenga completa las clasificaciones
If dtcompras IsNot Nothing AndAlso dtcompras.Rows.Count > 0 AndAlso dtcompras.MIN("Valido") = "0" Then
e.Row.FCCheckBox("Chk").Visible = False
End If
End If
End If
End Sub
Protected Sub GvPC_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
Dim gv As GridView = e.Row.FCGridView("GvD")
Dim dtt As DataTable = Nothing
Dim IdGv As String = DirectCast(DirectCast(e.Row.BindingContainer, GridView).NamingContainer.BindingContainer, GridView).ID
Select Case IdGv
Case "GvAnt"
dtt = DtDatosAnticiposCompras
Case "GvFyE"
dtt = DtDatosFyECompras
Case "GvComp"
dtt = DtDatosComprobaciones
Case "GvNC"
dtt = DtDatosNotasCredito
End Select
dtt = dtt.FiltraParametros(String.Format("CveCompra = {0} AND CveIE = {1} AND CvePS <> -1", e.Row.DBCampo("CveCompra"), e.Row.DBCampo("CveIE")))
If e.Row.DBCampo("CompraIdPoliza").ToEntero > 0 Then
e.Row.BackColor = System.Drawing.Color.LightBlue
End If
gv.DataSource = dtt
gv.DataBind()
If e.Row.DBCampo("IdCtaContProveedores").ToEntero = 0 Then
'falta vicularse el proveedor
e.Row.FCHyperLink("HplProv").ForeColor = Drawing.Color.OrangeRed
e.Row.FCHyperLink("HplProv").ToolTip = "Falta vincular la cuenta contable"
End If
If e.Row.DBCampo("RetIVA").ToDouble > 0 AndAlso e.Row.DBCampo("IdCtaContRetIVA").ToEntero = 0 Then
'falta vicularse el proveedor
e.Row.FCLabel("LblRetIVA").ForeColor = Drawing.Color.OrangeRed
e.Row.FCLabel("LblRetIVA").ToolTip = "Falta vincular la cuenta contable de retencion de IVA"
End If
If e.Row.DBCampo("RetISR").ToDouble > 0 AndAlso e.Row.DBCampo("IdCtaContRetISR").ToEntero = 0 Then
'falta vicularse el proveedor
e.Row.FCLabel("LblRetISR").ForeColor = Drawing.Color.OrangeRed
e.Row.FCLabel("LblRetISR").ToolTip = "Falta vincular la cuenta contable de retencion de ISR"
End If
'If e.Row.DBCampo("Actual").ToEntero = 0 AndAlso e.Row.DBCampo("CompraIdPoliza").ToEntero = 0 Then
' e.Row.FCHyperLink("HplFact").ForeColor = Drawing.Color.OrangeRed
' e.Row.FCHyperLink("HplFact").ToolTip = "Factura del mes anterior no provisionada"
'End If
If e.Row.DataKey("CveMonedaCompra") = "2" AndAlso IdGv = "GvNC" Then
'obtengo el padre, el valor de la fluctuacion
Dim FechaFluctuacion As Date = DirectCast(DirectCast(e.Row.BindingContainer, GridView).BindingContainer, GridViewRow).DataKey("FechaFluctuacion").ToDate
Dim TipoCambioFluctuacion As Double = DirectCast(DirectCast(e.Row.BindingContainer, GridView).BindingContainer, GridViewRow).DataKey("TipoCambioFluctuacion").ToDouble
If UsuarioActual.CveEmpresa = 66 Then
'si la fecha de la compra es mayor a la de la fluctuacion, debe de tomar su tipo de cambio, sino toma el de la ultima fluctuacion
TipoCambioFluctuacion = If(e.Row.DBCampo("Fecha").ToDate < FechaFluctuacion, TipoCambioFluctuacion, e.Row.DBCampo("TC_Compra").ToDouble)
FechaFluctuacion = If(e.Row.DBCampo("Fecha").ToDate < FechaFluctuacion, FechaFluctuacion, e.Row.DBCampo("Fecha").ToDate)
Else
FechaFluctuacion = e.Row.DBCampo("Fecha").ToDate
TipoCambioFluctuacion = e.Row.DBCampo("TC_Compra").ToDouble
End If
e.Row.FCHiddenField("HdnTC").Value = TipoCambioFluctuacion.ToString
'cuando falta la cuenta complementaria
'If e.Row.DBCampo("IdCtaContComplementaria").ToEntero <= 0 Then
' e.Row.FCHyperLink("HplProv").ForeColor = Drawing.Color.OrangeRed
' e.Row.FCHyperLink("HplProv").ToolTip = "Falta vincular la cuenta contable complementaria del proveedor"
'End If
End If
End If
End Sub
Protected Sub GvD_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("IdCuentaGasto").ToEntero > 0 Then e.Row.FCDropDownList("DdlM").Items.Add(New WebControls.ListItem("Gasto", e.Row.DBCampo("IdCuentaGasto")))
' If e.Row.DBCampo("IdCuentaAnticipo").ToEntero > 0 Then e.Row.FCDropDownList("DdlM").Items.Add(New ListItem("Anticipo", e.Row.DBCampo("IdCuentaAnticipo")))
'If e.Row.DBCampo("IdCuentaInventario").ToEntero > 0 Then e.Row.FCDropDownList("DdlM").Items.Add(New ListItem("Inventario", e.Row.DBCampo("IdCuentaInventario")))
'e.Row.FCLiteral("LitCta").Text = String.Format("<div style='width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;'>{0}</div>", e.Row.DBCampo("CuentaGasto"))
End If
End Sub
Protected Sub GvComp_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvComp.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.FCDropDownList("DdlPolizaTipo").DataSource = DtTiposPoliza
e.Row.FCDropDownList("DdlPolizaTipo").DataBind()
e.Row.FCDropDownList("DdlPolizaTipo").SelectedValue = "3"
Dim gvC As GridView = e.Row.FCGridView("GvPC")
Dim tdtcompras As DataTable = DtDatosComprobaciones.FiltraParametros(String.Format("CveCompra = {0} AND CvePS = -1 ", e.Row.DBCampo("CveCompra"), e.Row.DBCampo("CveCompra")))
gvC.DataSource = tdtcompras
gvC.DataBind()
'If e.Row.DBCampo("CompraIdPoliza").ToEntero > 0 Then
' e.Row.BackColor = System.Drawing.Color.LightBlue
'End If
'gv.DataSource = dtt
'gv.DataBind()
'If e.Row.DBCampo("IdCtaContProveedores").ToEntero = 0 Then
' 'falta vicularse el proveedor
' e.Row.FCHyperLink("HplProv").ForeColor = Drawing.Color.OrangeRed
' e.Row.FCHyperLink("HplProv").ToolTip = "Falta vincular la cuenta contable"
'End If
'If e.Row.DBCampo("RetIVA").ToDouble > 0 AndAlso e.Row.DBCampo("IdCtaContRetIVA").ToEntero = 0 Then
' 'falta vicularse el proveedor
' e.Row.FCLabel("LblRetIVA").ForeColor = Drawing.Color.OrangeRed
' e.Row.FCLabel("LblRetIVA").ToolTip = "Falta vincular la cuenta contable de retencion de IVA"
'End If
'If e.Row.DBCampo("RetISR").ToDouble > 0 AndAlso e.Row.DBCampo("IdCtaContRetISR").ToEntero = 0 Then
' 'falta vicularse el proveedor
' e.Row.FCLabel("LblRetISR").ForeColor = Drawing.Color.OrangeRed
' e.Row.FCLabel("LblRetISR").ToolTip = "Falta vincular la cuenta contable de retencion de ISR"
'End If
If e.Row.DBCampo("ValidoCuenta") = "1" Then
e.Row.FCCheckBox("Chk").Visible = True
''pero si hay compras sin contabilizar, y la factura no tenga completa las clasificaciones
'If tdtcompras IsNot Nothing AndAlso tdtcompras.Rows.Count > 0 AndAlso tdtcompras.MIN("Valido") = "0" Then
' e.Row.FCCheckBox("Chk").Visible = False
'End If
End If
End If
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
UsuarioActual.Sesion("DiarioPagos-CveProveedor") = DdlProveedores.SelectedValue
UsuarioActual.Sesion("DiarioPagos-FI") = txtFechaI.Text
UsuarioActual.Sesion("DiarioPagos-FF") = txtFechaF.Text
CargaDatos()
UPPDatos.Update()
End Sub
Protected Sub BtnContabilizar_Click(sender As Object, e As EventArgs) Handles BtnContabilizar.Click
If Tabs.ActiveTabIndex = 0 AndAlso UsuarioActual.CveEmpresa.Contiene(13, 66, 48) Then
ContabilizarCompras(1)
Exit Sub
End If
If Tabs.ActiveTabIndex = 1 AndAlso UsuarioActual.CveEmpresa.Contiene(13, 66) Then
ContabilizarCompras(2) 'funcionarios y empleados
Exit Sub
End If
If Tabs.ActiveTabIndex = 2 AndAlso UsuarioActual.CveEmpresa.Contiene(13, 66) Then
ContabilizarComprobaciones(3) 'funcionarios y empleados
Exit Sub
End If
If Tabs.ActiveTabIndex = 3 Then
ContabilizarComprobaciones(4) 'Notas de credito
Exit Sub
End If
End Sub
Private Sub ContabilizarCompras(Opcion As Integer)
Dim TipoCambio As Double
Dim Contador As Integer = 0
Dim ContadorME As Integer = 0
Dim GvTmp As GridView = Nothing
Select Case Opcion
Case 2
GvTmp = GvFyE
Case 1
GvTmp = GvAnt
Case 3
GvTmp = GvComp
Case 4
GvTmp = GvNC
End Select
For Each gvr As GridViewRow In GvTmp.Rows
If gvr.FCCheckBox("Chk").Checked Then
Contador += 1
If gvr.DataKey("CveMoneda") <> "1" Then
TipoCambio = TxtTC.Text.ToDouble : ContadorME += 1
Else : TipoCambio = 1
End If
' Total += (gvr.DataKey("Importe").ToDouble + gvr.DataKey("IVA").ToDouble) * TipoCambio
End If
Next
If ContadorME > 0 AndAlso TxtTC.Text.ToDouble <= 0 AndAlso RBLOpcion.SelectedValue = "1" Then
Alert("Ingrese un tipo de cambio.")
Exit Sub
End If
Dim TipoMovto As Boolean = False
If Contador > 0 Then
Dim Conta As ClsContPAQi = Nothing
Dim PrePolizas As ClsContabilidad = Nothing
Dim Bancos As ClsBancos = Nothing
Dim IDPoliza As Integer = 0
Dim Referencia As String
Dim ConceptoMov As String
Dim ConceptoDetalle, ConceptoTmp As String
Dim NumPoliza As Integer = 0
Dim MultNC As Integer
Dim Concepto As String
Dim MonExt As Boolean
Dim TipoPoliza As String = ""
Dim Total As Double
Dim Fecha As Date
Dim IVAAcreditable, IVAxAcreditar As Decimal
Dim CveMoneda As Integer ', CvePrePoliza
Dim CvePlantillaPoliza As Integer
Dim CargoProveedor, CargoAnticipo, AbonoAnticipo, AbonoProveedor, AbonoFuncionario As Decimal
Dim IdCuentaProveedor, IdCuentaAnticipo, IdCuentaBancos, IdCtaContBancosComplementaria, IdCuentaFuncionario As Integer ' IdCuentaFuncionario, IdCuentaDeudorDiverso,
Dim MsgError As String = ""
Dim MsgErrorGeneral As New StringBuilder
Dim PolizasGeneradas As New StringBuilder
Dim IdCuentaIVAxAcreditar, IdCuentaIVAAcreditable, IdCuentaRetIVA, IdCuentaRetISR As Integer
Dim CompraTotal, IVAPagado, RetIVAPagado, RetISRPagado As Decimal
Dim Folio As String
Dim EsContabilizada, SimplificaIVAxAcreditar As Boolean
Dim CompraPagadoTotal, CompraPagadoRetIVA, CompraPagadoRetISR As Decimal
Dim TotalFuncionarios As Decimal
Dim TipoCambioPago As Decimal
Dim TipoCambioCompra As Decimal
Dim TipoCambioFechaCompra As Decimal 'utiliza el tipo de cambio exclusivo de la fecha de la compra
Try
For Each gvr As GridViewRow In GvTmp.Rows
If gvr.FCCheckBox("Chk").Checked Then
Folio = ""
'----------------------------------------- Registro Movimientos Bancarios
ConceptoMov = gvr.FCTextBox("TxtDescripcion").Text
CvePlantillaPoliza = gvr.DataKey("CvePlantillaPoliza").ToEntero
IdCuentaBancos = gvr.DataKey("IdCtaContBancos").ToEntero
IdCtaContBancosComplementaria = gvr.DataKey("IdCtaContBancosComplementaria").ToEntero
Referencia = ConceptoMov
'si es otra diferente al peso
If gvr.DataKey("CveMoneda") <> "1" Then
TipoCambio = TxtTC.Text.ToDouble
If RBLOpcion.SelectedValue = "1" Then TipoCambioPago = TxtTC.Text.ToDecimal Else TipoCambioPago = gvr.FCTextBox("TxtTC").Text.ToDecimal
MonExt = True
Concepto = String.Format("{0} TC:{1} ${2}", ConceptoMov, TxtTC.Text, gvr.DataKey("Importe").ToDouble.FormatoNumero)
Else
TipoCambio = 1
TipoCambioCompra = 1
TipoCambioPago = 1
MonExt = False
Concepto = ConceptoMov
End If
Total = gvr.DataKey("Importe").ToDouble
Select Case UsuarioActual.CveEmpresa
Case 13
TipoPoliza = "TRAN"
Case 66
Folio = "-1"
TipoPoliza = String.Format("1-{0}", gvr.DataKey("PrefijoConta").PadLeft(3, "0"c))
End Select
'inserto una poliza por pago
Conta = New ClsContPAQi(UsuarioActual.Empresa)
Conta.IniciaTransacSQL()
PrePolizas = New ClsContabilidad
Bancos = New ClsBancos(PrePolizas.IniciaTransacSQL())
MsgError = ""
Fecha = gvr.FCTextBox("TxtFecha").Text.ToDate
IDPoliza = Conta.AddPoliza(gvr.FCDropDownList("DdlPolizaTipo").SelectedValue.ToEntero, gvr.FCTextBox("TxtDescripcion").Text, Total, Total, UsuarioActual.CveUsuario, Fecha, Folio, TipoPoliza)
NumPoliza = Conta.Folio
Select Case gvr.DataKey("CvePlantillaPoliza")
Case "3" ' Anticipo
TipoMovto = False
Case "10", "52" 'Amortizacion Anticipo
TipoMovto = True
End Select
Dim GvCompras As GridView = gvr.FCGridView("GvPC")
For Each gvrc As GridViewRow In GvCompras.Rows
Dim PorcentajeIVA As Decimal = (gvrc.FCHiddenField("HdnPorcentajeIVA").Value.ToDecimal() * 100).ToEntero
AbonoProveedor = 0 : CargoProveedor = 0 : CargoAnticipo = 0 : AbonoAnticipo = 0
IdCuentaIVAxAcreditar = gvr.DataKey("IdCuentaIVAxAcreditar").ToEntero
IdCuentaIVAAcreditable = gvr.DataKey("IdCuentaIVAAcreditable").ToEntero
IdCuentaRetIVA = gvrc.FCHiddenField("HdnIdCtaContRetIVA").Value.ToEntero
IdCuentaRetISR = gvrc.FCHiddenField("HdnIdCtaContRetISR").Value.ToEntero
CompraPagadoTotal = gvrc.FCHiddenField("HdnImportePagadoCompra").Value.ToDecimal
IVAPagado = gvrc.FCHiddenField("HdnIVAPagadoCompra").Value.ToDecimal
RetIVAPagado = gvrc.FCHiddenField("HdnRetIVAPagadoCompra").Value.ToDecimal
RetISRPagado = gvrc.FCHiddenField("HdnRetISRPagadoCompra").Value.ToDecimal
IVAAcreditable = gvrc.FCHiddenField("HdnIVAPagadoCompra").Value.ToDecimal
CompraPagadoRetIVA = gvrc.FCHiddenField("HdnRetIVAPagadoCompra").Value.ToDecimal
CompraPagadoRetISR = gvrc.FCHiddenField("HdnRetISRPagadoCompra").Value.ToDecimal
CompraTotal = gvrc.FCHiddenField("HdnTotal").Value.ToDecimal
IVAxAcreditar = gvrc.FCHiddenField("HdnIVA").Value.ToDecimal
EsContabilizada = gvrc.FCHiddenField("HdnCompraIdPoliza").Value.ToEntero > 0
ConceptoDetalle = gvrc.FCHiddenField("HdnRazonSocial").Value
TipoCambioFechaCompra = gvrc.FCHiddenField("HdnTCFechaCompra").Value.ToDecimal
CveMoneda = gvr.DataKey("CveMoneda").ToEntero
Select Case CvePlantillaPoliza
Case 10
IdCuentaProveedor = gvrc.FCHiddenField("HdnIdCtaContProveedores").Value.ToEntero
IdCuentaAnticipo = gvr.DataKey("IdCtaContAnticipos").ToEntero
AbonoProveedor = 0
AbonoAnticipo = CompraPagadoTotal
'cuando el anticipo no paga toda la factura y no esta contabilizada
If AbonoAnticipo < CompraTotal Then AbonoProveedor = CompraTotal - AbonoAnticipo
Case 2
AbonoProveedor = 0
IdCuentaProveedor = gvrc.FCHiddenField("HdnIdCtaContProveedores").Value.ToEntero
Case 20
'contabilizo la prepoliza
If Not Bancos.UpdateCompraPrePoliza(Fecha, NumPoliza.ToString, IDPoliza, gvrc.FCHiddenField("HdnCveCompra").Value.ToEntero, 20) Then MsgError = "Error al actualizar compra" : Exit For
Case 8, 9 'FyE
IdCuentaFuncionario = gvr.DataKey("IdCtaContPersonal").ToEntero
AbonoFuncionario = CompraPagadoTotal
'cuando la amortizacion no paga toda la factura y no esta contabilizada
If AbonoFuncionario < CompraTotal Then AbonoFuncionario = CompraTotal '- AbonoFuncionario
If CompraTotal > TotalFuncionarios Then TotalFuncionarios = 0 ' si la compra es mayor al cheque, no debe cargar a funcionarios
End Select
If EsContabilizada Then
Select Case CvePlantillaPoliza
Case 10
CargoAnticipo = 0
AbonoAnticipo = CompraPagadoTotal
CargoProveedor = CompraPagadoTotal
AbonoProveedor = 0
If Not Bancos.UpdateCompraPrePoliza(Fecha, NumPoliza.ToString, IDPoliza, gvrc.FCHiddenField("HdnCveCompra").Value.ToEntero, 10) Then MsgError = "Error al actualizar compra" : Exit For
Case 2
CargoProveedor = CompraPagadoTotal
AbonoProveedor = 0
Case 20
CargoProveedor = CompraPagadoTotal
AbonoProveedor = 0
'contabilizo la prepoliza
If Not Bancos.UpdateCompraPrePoliza(Fecha, NumPoliza.ToString, IDPoliza, gvrc.FCHiddenField("HdnCveCompra").Value.ToEntero, 20) Then MsgError = "Error al actualizar compra" : Exit For
Case 8
AbonoFuncionario = 0
TotalFuncionarios = 0
End Select
IVAxAcreditar = 0
End If
'ya viene el tipo de cambio entre la fecha de compra y la ultima fluctuacion
If CveMoneda = 2 Then TipoCambioCompra = gvrc.FCHiddenField("HdnTC").Value.ToDecimal Else TipoCambioCompra = 1
''S I M P L I F I C A R
SimplificaIVAxAcreditar = False
If CargoAnticipo = AbonoAnticipo Then CargoAnticipo = 0 : AbonoAnticipo = 0
If IVAAcreditable = IVAxAcreditar Then IVAxAcreditar = 0 : SimplificaIVAxAcreditar = True
'sino esta contabilizada Registro los movimientos de la compra
If Not EsContabilizada Then
Dim GvDetalle As GridView = gvrc.FCGridView("GvD")
'sino esta contabilizada.. registro al gasto
If GvDetalle IsNot Nothing Then
For Each gvrr As GridViewRow In GvDetalle.Rows
'ConceptoDetalle = gvr.DataKey("RazonSocial") ' gvrr.FCLiteral("LitPS").Text
'Cargos += Math.Round(gvrr.FCLiteral("LitSubTotalPS").Text.ToDouble * TipoCambioCompra, 2)
If Not Conta.AddMovimiento(IDPoliza, gvrr.FCDropDownList("DdlM").SelectedValue.ToEntero, False, gvrr.FCLiteral("LitSubTotalPS").Text.ToDouble * TipoCambioCompra, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, 0, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, gvrr.FCLiteral("LitSubTotalPS").Text.ToDouble, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
Next
'debe de actualizar
If Not Bancos.UpdateCompraPrePoliza(Fecha, NumPoliza.ToString, IDPoliza, gvrc.FCHiddenField("HdnCveCompra").Value.ToEntero) Then
MsgError = "Error al actualizar compra" : Exit For
End If
End If
End If
If IVAxAcreditar > 0 Then
If Not Conta.AddMovimiento(IDPoliza, IdCuentaIVAxAcreditar, False, (IVAxAcreditar * TipoCambioCompra), gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, 0, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, IVAxAcreditar, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
End If
If IVAAcreditable > 0 Then 'iva Acreditable
'
If SimplificaIVAxAcreditar = False Then IVAxAcreditar = IVAAcreditable
ConceptoTmp = If(CveMoneda = 2, String.Format("{0} TC {1}", ConceptoDetalle, TipoCambioFechaCompra), ConceptoDetalle)
If IVAxAcreditar > 0 AndAlso Not Conta.AddMovimiento(IDPoliza, IdCuentaIVAxAcreditar, True, IVAxAcreditar * TipoCambioFechaCompra, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoTmp, 0, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, IVAxAcreditar, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
ConceptoTmp = If(CveMoneda = 2, String.Format("{0} TC {1}", ConceptoDetalle, TipoCambioPago), ConceptoDetalle)
If Not Conta.AddMovimiento(IDPoliza, IdCuentaIVAAcreditable, False, IVAAcreditable * TipoCambioPago, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoTmp, 0, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, IVAAcreditable, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
Dim SubTotal As Double = CompraPagadoTotal * TipoCambioPago - IVAAcreditable * TipoCambioPago + CompraPagadoRetIVA * TipoCambioPago + CompraPagadoRetISR * TipoCambioPago
Dim IdProveedor As Integer = -1
If IdCuentaProveedor > 0 Then
'busco la clave del proveedor en la contabilidad por su cuenta contable
If Conta.GetProveedores(IdCuentaContable:=IdCuentaProveedor) Then
If Conta.DtResultados.Rows.Count > 0 Then
Dim dr As DataRow = Conta.DtResultados.Rows(0)
IdProveedor = dr("Id").ToString.ToEntero
End If
End If
Else
'busco la clave del proveedor en la contabilidad por su cuenta contable
If Conta.GetProveedores(RFC:=gvrc.FCHiddenField("HdnRFC").Value) Then
If Conta.DtResultados.Rows.Count > 0 Then
Dim dr As DataRow = Conta.DtResultados.Rows(0)
IdProveedor = dr("Id").ToString.ToEntero
End If
Else
'registro el proveedor generico
Select Case UsuarioActual.CveEmpresa
Case 66 : IdProveedor = 12726
Case Else : IdProveedor = 1
End Select
End If
End If
If IdProveedor <= 0 Then
IdProveedor = Conta.AddProveedor(IdCuentaProveedor, gvrc.FCHiddenField("HdnRFC").Value, gvrc.FCHiddenField("HdnRazonSocial").Value, "")
If IdProveedor <= 0 Then
MsgError = "No se pudo insertar movimientos de devoluciones de IVA" : Exit For
End If
End If
Dim UUID As String = gvrc.FCHiddenField("HdnUUID").Value
If Not Conta.AddDevolucionesIVA(IDPoliza, IdCuentaBancos, IdProveedor, 16,
SubTotal,
IVAAcreditable * TipoCambioPago,
CompraPagadoRetIVA * TipoCambioPago,
CompraPagadoRetISR * TipoCambioPago,
Fecha, NumPoliza.ToString, gvrc.FCHiddenField("HdnSerie").Value, gvrc.FCHiddenField("HdnFolio").Value.StrToNum, UUID, UsuarioActual.CveEmpresa) Then
MsgError = "No se pudo insertar movimientos de devoluciones de IVA" : Exit For
End If
If MsgError = "" Then
Dim GuidMov As String = Guid.NewGuid().ToString()
Dim NoDeducible = False
Dim IVANoAcred As Decimal = 0 'si NoDeducible es true -- > Es el iva no deducible , ivano deducible totald e la compra
If Not Conta.AddMovimientoImpuesto(IDPoliza, IdCuentaBancos, IdProveedor, PorcentajeIVA, PorcentajeIVA, SubTotal, IVAAcreditable * TipoCambioPago,
Fecha, NumPoliza.ToString, gvrc.FCHiddenField("HdnSerie").Value, gvrc.FCHiddenField("HdnFolio").Value.StrToNum, UUID, NoDeducible, IVANoAcred, GuidMov, "", 1, 2) Then
MsgError = "No se pudo insertar movimientos de impuesto de IVA" : Exit For
End If
If MsgError = "" AndAlso CompraPagadoRetIVA > 0 Then
Dim GuidMovRetIVA As String = Guid.NewGuid().ToString()
Dim TasaOCuotaRetIVA As Decimal = (((CompraPagadoRetIVA * TipoCambioPago) / SubTotal) * 100).ToDecimal.RoundSQL(4)
If Not Conta.AddMovimientoImpuesto(IDPoliza, IdCuentaBancos, IdProveedor, PorcentajeIVA, TasaOCuotaRetIVA, SubTotal, CompraPagadoRetIVA * TipoCambioPago,
Fecha, NumPoliza.ToString, gvrc.FCHiddenField("HdnSerie").Value, gvrc.FCHiddenField("HdnFolio").Value.StrToNum, UUID, NoDeducible, IVANoAcred, GuidMovRetIVA, GuidMov, 2, 2) Then
MsgError = "No se pudo insertar movimientos de retención de IVA" : Exit For
End If
End If
If MsgError = "" AndAlso CompraPagadoRetISR > 0 Then
Dim GuidMovRetISR As String = Guid.NewGuid().ToString()
Dim TasaOCuotaRetIVA As Decimal = (((CompraPagadoRetISR * TipoCambioPago) / SubTotal) * 100).ToDecimal.RoundSQL(4)
If Not Conta.AddMovimientoImpuesto(IDPoliza, IdCuentaBancos, IdProveedor, PorcentajeIVA, TasaOCuotaRetIVA, SubTotal, CompraPagadoRetISR * TipoCambioPago,
Fecha, NumPoliza.ToString, gvrc.FCHiddenField("HdnSerie").Value, gvrc.FCHiddenField("HdnFolio").Value.StrToNum, UUID, NoDeducible, IVANoAcred, GuidMovRetISR, GuidMov, 2, 1) Then
MsgError = "No se pudo insertar movimientos de retención de ISR" : Exit For
End If
End If
End If
End If
If CargoProveedor > 0 Then ' cuando el pago no cubre el 100%
If Not Conta.AddMovimiento(IDPoliza, IdCuentaProveedor, False, CargoProveedor, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, 0, Fecha, gvrc.FCHiddenField("HdnCveProveedor").Value.ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, CargoProveedor, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
''hago el movimiento de fluctuacion cambiaria
If CveMoneda = 2 AndAlso gvr.DataKey("IdCtaContComplementaria").ToEntero > 0 Then
Dim FluctuacionCambiaria, FluctuacionCambiariaIVA As Double
'registro a la cuenta complementaria del proveedor
Dim TmpTotal As Double = Math.Round(CompraPagadoTotal * TipoCambioCompra - CompraPagadoTotal, 2)
If Not Conta.AddMovimiento(IDPoliza, gvr.DataKey("IdCtaContComplementaria").ToEntero, TipoMovto, TmpTotal, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, 0, Fecha, gvrc.FCHiddenField("HdnCveProveedor").Value.ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, gvrc.FCHiddenField("HdnTotal").Value.ToDouble, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
Dim CtaFluctuacion As Integer
Dim tempMovto As Boolean = False
FluctuacionCambiariaIVA = Math.Round((IVAAcreditable * TipoCambioFechaCompra) - (IVAAcreditable * TipoCambioPago), 2) 'FLUCTUACION CAMBIARIA DE IVA
If FluctuacionCambiariaIVA < 0 Then
tempMovto = True ' ganancia cambiaria
Else
tempMovto = False ' perdida cambiaria
End If
If Math.Abs(FluctuacionCambiariaIVA) <> 0 Then
If Not Conta.AddMovimiento(IDPoliza, CtaFluctuacion, tempMovto, Math.Abs(FluctuacionCambiariaIVA), gvrc.FCHiddenField("HdnSerieFolio").Value, "Fluctuacion IVA " & ConceptoDetalle, 0, Fecha, gvr.DataKey("CveProveedor").ContaReferencia(TipoContaReferencia.Proveedor), 0) Then MsgError = "No se pudo insertar movimiento contable" : Exit For ' no lleva moneda extranjera
End If
FluctuacionCambiaria = Math.Round((CompraPagadoRetISR * TipoCambioCompra) - (CompraPagadoRetISR * TipoCambioPago), 2) 'FLUCTUACION CAMBIARIA DE ISR
Dim Dif As Double = (CompraPagadoTotal * TipoCambioPago) - Math.Round(CompraPagadoTotal * TipoCambioCompra, 2) + FluctuacionCambiaria
If Dif < 0 Then
tempMovto = True ' ganancia cambiaria
Else
tempMovto = False ' perdida cambiaria
End If
ConceptoDetalle = String.Format("{0} TC:{1} ${2}", gvr.FCTextBox("TxtDescripcion").Text, TipoCambioPago, Math.Abs(Dif).FormatoNumero)
If Math.Abs(Dif) <> 0 Then
If Not Conta.AddMovimiento(IDPoliza, CtaFluctuacion, tempMovto, Math.Abs(Dif), gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, 0, Fecha, gvr.DataKey("CveProveedor").ContaReferencia(TipoContaReferencia.Proveedor), 0) Then MsgError = "No se pudo insertar movimiento contable" : Exit For ' no lleva moneda extranjera
End If
End If
End If
If AbonoProveedor > 0 Then
If Not Conta.AddMovimiento(IDPoliza, IdCuentaProveedor, True, AbonoProveedor, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, 0, Fecha, gvrc.FCHiddenField("HdnCveProveedor").Value.ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, AbonoProveedor, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
End If
'hago el movimiento de fluctuacion cambiaria
If gvr.DataKey("CveMoneda") = "2" AndAlso gvr.DataKey("IdCtaContComplementaria").ToEntero > 0 Then
Dim FluctuacionCambiaria, FluctuacionCambiariaIVA As Double
'registro a la cuenta complementaria del proveedor
Dim TmpTotal As Double = Math.Round(CompraPagadoTotal * TipoCambioCompra - CompraPagadoTotal, 2)
If Not Conta.AddMovimiento(IDPoliza, gvr.DataKey("IdCtaContComplementaria").ToEntero, TipoMovto, TmpTotal, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, 0, Fecha, gvrc.FCHiddenField("HdnCveProveedor").Value.ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, gvrc.FCHiddenField("HdnTotal").Value.ToDouble, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
Dim CtaFluctuacion As Integer
Dim tempMovto As Boolean = False
FluctuacionCambiariaIVA = Math.Round((IVAAcreditable * TipoCambioFechaCompra) - (IVAAcreditable * TipoCambioPago), 2) 'FLUCTUACION CAMBIARIA DE IVA
If FluctuacionCambiariaIVA < 0 Then
tempMovto = True ' ganancia cambiaria
Else
tempMovto = False ' perdida cambiaria
End If
If Math.Abs(FluctuacionCambiariaIVA) <> 0 Then
If Not Conta.AddMovimiento(IDPoliza, CtaFluctuacion, tempMovto, Math.Abs(FluctuacionCambiariaIVA), gvrc.FCHiddenField("HdnSerieFolio").Value, "Fluctuacion IVA " & ConceptoDetalle, 0, Fecha, gvr.DataKey("CveProveedor").ContaReferencia(TipoContaReferencia.Proveedor), 0) Then MsgError = "No se pudo insertar movimiento contable" : Exit For ' no lleva moneda extranjera
End If
FluctuacionCambiaria = Math.Round((CompraPagadoRetISR * TipoCambioCompra) - (CompraPagadoRetISR * TipoCambioPago), 2) 'FLUCTUACION CAMBIARIA DE ISR
Dim Dif As Double = (CompraPagadoTotal * TipoCambioPago) - Math.Round(CompraPagadoTotal * TipoCambioCompra, 2) + FluctuacionCambiaria
If Dif < 0 Then
tempMovto = True ' ganancia cambiaria
Else
tempMovto = False ' perdida cambiaria
End If
ConceptoDetalle = String.Format("{0} TC:{1} ${2}", gvr.FCTextBox("TxtDescripcion").Text, TipoCambioPago, Math.Abs(Dif).FormatoNumero)
If Math.Abs(Dif) <> 0 Then
If Not Conta.AddMovimiento(IDPoliza, CtaFluctuacion, tempMovto, Math.Abs(Dif), gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, 0, Fecha, gvr.DataKey("CveProveedor").ContaReferencia(TipoContaReferencia.Proveedor), 0) Then MsgError = "No se pudo insertar movimiento contable" : Exit For ' no lleva moneda extranjera
End If
End If
If AbonoFuncionario > 0 Then
If Not Conta.AddMovimiento(IDPoliza, IdCuentaFuncionario, True, AbonoFuncionario, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, 0, Fecha, gvrc.FCHiddenField("HdnCveProveedor").Value.ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, AbonoAnticipo, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
End If
Next
If AbonoAnticipo > 0 Then
If Not Conta.AddMovimiento(IDPoliza, IdCuentaAnticipo, True, AbonoAnticipo, "", ConceptoMov, 0, Fecha, gvr.DataKey("CveIE").ContaReferencia(TipoContaReferencia.Banco).ToString, If(MonExt, Total, 0.0) * MultNC) Then
MsgError = "No se pudo insertar movimiento contable"
End If
End If
If MsgError = "" Then
Conta.AjustaPoliza(IDPoliza)
'PrePolizas.UpdatePoliza(Fecha, NumPoliza, IDPoliza, gvr.DataKey("CvePrePoliza").ToEntero, gvr.DataKey("CveEmpresa").ToEntero)
Conta.Commit()
PrePolizas.Commit()
UPPDatos.Update()
PolizasGeneradas.AppendFormat("&nbsp;&nbsp;&nbsp;<a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">Folio: {1}</a></center></br>", IDPoliza, NumPoliza)
'Alert(String.Format("<center>La póliza se ha generado correctamente <br/><br/> <a class=""Texto"" target='_blank' href=""/Contabilidad/Poliza.aspx?IdPoliza={0}"">Ver Póliza</a></center>", IDPoliza))
Else
Conta.RollBack()
PrePolizas.RollBack()
MsgErrorGeneral.AppendFormat("{0}{1}", gvr.FCLiteral("LitTT").Text, gvr.FCHyperLink("HplFolio").Text)
End If
End If
Next
Catch ex As Exception
Conta.RollBack()
PrePolizas.RollBack()
Alert(ex.Message)
End Try
Dim Msgg As String = ""
If PolizasGeneradas.Length > 0 Then
Msgg = PolizasGeneradas.ToString
End If
If MsgErrorGeneral.Length > 0 Then Msgg = String.Format("{0}{1}", Msgg, MsgErrorGeneral.ToString)
Alert(Msgg, TipoMensaje.MsgInformacion)
CargaDatos()
Conta.Dispose()
PrePolizas.Dispose()
Else
Alert("Seleccione factura(s) para contabilizar")
End If
End Sub
Private Sub ContabilizarComprobaciones(Opcion As Integer)
Dim TipoCambio As Double
Dim Contador As Integer = 0
Dim ContadorME As Integer = 0
Dim GvTmp As GridView = Nothing
Select Case Opcion
Case 2
GvTmp = GvFyE
Case 1
GvTmp = GvAnt
Case 3
GvTmp = GvComp
Case 4
GvTmp = GvNC
End Select
For Each gvr As GridViewRow In GvTmp.Rows
If gvr.FCCheckBox("Chk").Checked Then
Contador += 1
If gvr.DataKey("CveMonedaCompra") <> "1" Then
TipoCambio = TxtTC.Text.ToDouble : ContadorME += 1
Else : TipoCambio = 1
End If
' Total += (gvr.DataKey("Importe").ToDouble + gvr.DataKey("IVA").ToDouble) * TipoCambio
End If
Next
If ContadorME > 0 AndAlso TxtTC.Text.ToDouble <= 0 AndAlso RBLOpcion.SelectedValue = "1" Then
Alert("Ingrese un tipo de cambio.")
Exit Sub
End If
Dim TipoMovto As Boolean = False
If Contador > 0 Then
Dim Conta As ClsContPAQi = Nothing
Dim PrePolizas As ClsContabilidad = Nothing
Dim Bancos As ClsBancos = Nothing
Dim IDPoliza As Integer = 0
Dim Referencia As String
Dim ConceptoMov As String
Dim ConceptoDetalle, ConceptoTmp As String
Dim NumPoliza As Integer = 0
'Dim MultNC As Integer
Dim Concepto As String
Dim MonExt As Boolean
Dim TipoPoliza As String = ""
Dim Total As Double
Dim Fecha As Date
Dim IVAAcreditable, IVAxAcreditar As Decimal
Dim CveMoneda As Integer ', CvePrePoliza
Dim CvePlantillaPoliza As Integer
Dim CargoProveedor, CargoAnticipo, AbonoAnticipo, AbonoProveedor As Decimal
Dim IdCuentaProveedor, IdCuentaBancos, IdCuentaFuncionario As Integer ' IdCuentaFuncionario, IdCuentaDeudorDiverso,
Dim MsgError As String = ""
Dim MsgErrorGeneral As New StringBuilder
Dim PolizasGeneradas As New StringBuilder
Dim IdCuentaIVAxAcreditar, IdCuentaIVAAcreditable, IdCuentaRetIVA, IdCuentaRetISR As Integer
Dim CompraTotal, IVAPagado, RetIVAPagado, RetISRPagado As Decimal
Dim Folio As String
Dim EsContabilizada, SimplificaIVAxAcreditar As Boolean
Dim CompraPagadoTotal, CompraPagadoRetIVA, CompraPagadoRetISR As Decimal
'Dim TotalFuncionarios As Decimal
Dim TipoCambioPago As Decimal
Dim TipoCambioCompra As Decimal
Dim TipoCambioFechaCompra As Decimal 'utiliza el tipo de cambio exclusivo de la fecha de la compra
Try
For Each gvr As GridViewRow In GvTmp.Rows
If gvr.FCCheckBox("Chk").Checked Then
Folio = ""
'----------------------------------------- Registro Movimientos Bancarios
ConceptoMov = gvr.FCTextBox("TxtDescripcion").Text
CvePlantillaPoliza = gvr.DataKey("CvePlantillaPoliza").ToEntero
'IdCuentaBancos = gvr.DataKey("IdCtaContBancos").ToEntero
'IdCtaContBancosComplementaria = gvr.DataKey("IdCtaContBancosComplementaria").ToEntero
Referencia = ConceptoMov
'si es otra diferente al peso
If gvr.DataKey("CveMonedaCompra") <> "1" Then
TipoCambio = TxtTC.Text.ToDouble
If RBLOpcion.SelectedValue = "1" Then TipoCambioPago = TxtTC.Text.ToDecimal Else TipoCambioPago = gvr.FCTextBox("TxtTC").Text.ToDecimal
MonExt = True
Concepto = String.Format("{0} TC:{1} ${2}", ConceptoMov, TxtTC.Text, gvr.DataKey("Total").ToDouble.FormatoNumero)
Else
TipoCambio = 1
TipoCambioCompra = 1
TipoCambioPago = 1
MonExt = False
Concepto = ConceptoMov
End If
Total = gvr.DataKey("Total").ToDouble
Select Case UsuarioActual.CveEmpresa
Case 13
TipoPoliza = "TRAN"
Case 66
Folio = "-1"
TipoPoliza = "1-000"
End Select
'inserto una poliza por pago
Conta = New ClsContPAQi(UsuarioActual.Empresa)
Conta.IniciaTransacSQL()
PrePolizas = New ClsContabilidad
Bancos = New ClsBancos(PrePolizas.IniciaTransacSQL())
MsgError = ""
Fecha = gvr.FCTextBox("TxtFecha").Text.ToDate
IDPoliza = Conta.AddPoliza(gvr.FCDropDownList("DdlPolizaTipo").SelectedValue.ToEntero, gvr.FCTextBox("TxtDescripcion").Text, Total, Total, UsuarioActual.CveUsuario, Fecha, Folio, TipoPoliza)
NumPoliza = Conta.Folio
Select Case gvr.DataKey("CvePlantillaPoliza")
Case "3" ' Anticipo
TipoMovto = False
Case "10" 'Amortizacion Anticipo
TipoMovto = True
End Select
Dim GvCompras As GridView = gvr.FCGridView("GvPC")
Dim MultiNC As Integer = 1
For Each gvrc As GridViewRow In GvCompras.Rows
Dim PorcentajeIVA As Decimal = (gvrc.FCHiddenField("HdnPorcentajeIVA").Value.ToDecimal() * 100).ToEntero
AbonoProveedor = 0 : CargoProveedor = 0 : CargoAnticipo = 0 : AbonoAnticipo = 0
IdCuentaIVAxAcreditar = gvr.DataKey("IdCuentaIVAxAcreditar").ToEntero
IdCuentaIVAAcreditable = gvr.DataKey("IdCuentaIVAAcreditable").ToEntero
IdCuentaRetIVA = gvrc.FCHiddenField("HdnIdCtaContRetIVA").Value.ToEntero
IdCuentaRetISR = gvrc.FCHiddenField("HdnIdCtaContRetISR").Value.ToEntero
CompraTotal = gvrc.FCHiddenField("HdnTotal").Value.ToDecimal
IVAxAcreditar = 0
IVAAcreditable = gvrc.FCHiddenField("HdnIVA").Value.ToDecimal
CompraPagadoTotal = CompraTotal
IVAPagado = IVAAcreditable
RetIVAPagado = gvrc.FCHiddenField("HdnRetIVA").Value.ToDecimal
RetISRPagado = gvrc.FCHiddenField("HdnRetISR").Value.ToDecimal
EsContabilizada = gvrc.FCHiddenField("HdnCompraIdPoliza").Value.ToEntero > 0
ConceptoDetalle = gvrc.FCHiddenField("HdnRazonSocial").Value
TipoCambioFechaCompra = gvrc.FCHiddenField("HdnTCFechaCompra").Value.ToDecimal
CveMoneda = gvr.DataKey("CveMonedaCompra").ToEntero
IdCuentaProveedor = gvrc.FCHiddenField("HdnIdCtaContProveedores").Value.ToEntero
'ya viene el tipo de cambio entre la fecha de compra y la ultima fluctuacion
If CveMoneda = 2 Then TipoCambioCompra = gvrc.FCHiddenField("HdnTC").Value.ToDecimal Else TipoCambioCompra = 1
If gvrc.FCHiddenField("HdnTipoDocto").Value = "NC" Then
IVAxAcreditar = IVAAcreditable
IVAAcreditable = 0
If 1 = 1 Then
TipoCambioCompra = TipoCambioCompra * -1 'cuando el movimiento de las nc, sea <> cero, quiero decir que solo convertimos a negativos los valores
TipoCambioPago = TipoCambioPago * -1
TipoCambioFechaCompra = TipoCambioFechaCompra * -1
MultiNC = -1
AbonoProveedor = -CompraPagadoTotal
Else
TipoMovto = True 'cuando sea 0. los cargos se convierten en abonos y viceversa, pero los importes son positivos
End If
Else
TipoMovto = False
End If 'cuando es NC, se registran en negativos todos los valores
'Select Case CvePlantillaPoliza
' Case 10
' IdCuentaProveedor = gvrc.FCHiddenField("HdnIdCtaContProveedores").Value.ToEntero
' IdCuentaAnticipo = gvr.DataKey("IdCtaContAnticipos").ToEntero
' AbonoProveedor = 0
' AbonoAnticipo = CompraPagadoTotal
' 'cuando el anticipo no paga toda la factura y no esta contabilizada
' If AbonoAnticipo < CompraTotal Then AbonoProveedor = CompraTotal - AbonoAnticipo
' Case 2
' AbonoProveedor = 0
' IdCuentaProveedor = gvrc.FCHiddenField("HdnIdCtaContProveedores").Value.ToEntero
' Case 20
' 'contabilizo la prepoliza
' If Not Bancos.UpdateCompraPrePoliza(TxtFecha.Text.ToDate, NumPoliza, IDPoliza, gvrc.FCHiddenField("HdnCveCompra").Value.ToEntero, 20) Then MsgError = "Error al actualizar compra" : Exit For
' Case 8, 9 'FyE
' IdCuentaFuncionario = gvr.DataKey("IdCtaContPersonal").ToEntero
' AbonoFuncionario = CompraPagadoTotal
' 'cuando la amortizacion no paga toda la factura y no esta contabilizada
' If AbonoFuncionario < CompraTotal Then AbonoFuncionario = CompraTotal '- AbonoFuncionario
' If CompraTotal > TotalFuncionarios Then TotalFuncionarios = 0 ' si la compra es mayor al cheque, no debe cargar a funcionarios
'End Select
If Not Bancos.UpdateCompraPrePoliza(TxtFecha.Text.ToDate, NumPoliza.ToString, IDPoliza, gvrc.FCHiddenField("HdnCveCompra").Value.ToEntero, 8) Then MsgError = "Error al actualizar compra" : Exit For
If Not Bancos.UpdateCompraPrePoliza(TxtFecha.Text.ToDate, NumPoliza.ToString, IDPoliza, gvrc.FCHiddenField("HdnCveCompra").Value.ToEntero, 9) Then MsgError = "Error al actualizar compra" : Exit For
''S I M P L I F I C A R
SimplificaIVAxAcreditar = False
If CargoAnticipo = AbonoAnticipo Then CargoAnticipo = 0 : AbonoAnticipo = 0
If IVAAcreditable = IVAxAcreditar Then IVAxAcreditar = 0 : SimplificaIVAxAcreditar = True
'sino esta contabilizada Registro los movimientos de la compra
If Not EsContabilizada Then
Dim GvDetalle As GridView = gvrc.FCGridView("GvD")
'sino esta contabilizada.. registro al gasto
If GvDetalle IsNot Nothing Then
For Each gvrr As GridViewRow In GvDetalle.Rows
'ConceptoDetalle = gvr.DataKey("RazonSocial") ' gvrr.FCLiteral("LitPS").Text
'Cargos += Math.Round(gvrr.FCLiteral("LitSubTotalPS").Text.ToDouble * TipoCambioCompra, 2)
If Not Conta.AddMovimiento(IDPoliza, gvrr.FCDropDownList("DdlM").SelectedValue.ToEntero, False, gvrr.FCLiteral("LitSubTotalPS").Text.ToDouble * TipoCambioCompra, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, 0, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, gvrr.FCLiteral("LitSubTotalPS").Text.ToDouble, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
Next
'debe de actualizar
'If Not Bancos.UpdateCompraPrePoliza(TxtFecha.Text.ToDate, NumPoliza.ToEntero, IDPoliza, gvrc.FCHiddenField("HdnCveCompra").Value.ToEntero) Then
' MsgError = "Error al actualizar compra" : Exit For
'End If
End If
End If
'If IVAxAcreditar > 0 Then
' If Not Conta.AddMovimiento( IDPoliza, IdCuentaIVAxAcreditar, False, (IVAxAcreditar * TipoCambioCompra), gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, 0, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, IVAxAcreditar, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
'End If
If IVAxAcreditar > 0 Then
If Not Conta.AddMovimiento(IDPoliza, IdCuentaIVAxAcreditar, False, (IVAxAcreditar * TipoCambioCompra), gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, 0, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, IVAxAcreditar, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
End If
If IVAAcreditable > 0 Then 'iva Acreditable
ConceptoTmp = If(CveMoneda = 2, String.Format("{0} TC {1}", ConceptoDetalle, TipoCambioPago), ConceptoDetalle)
If Not Conta.AddMovimiento(IDPoliza, IdCuentaIVAAcreditable, False, IVAAcreditable * TipoCambioPago, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoTmp, 0, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, IVAAcreditable, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
Dim SubTotal As Double = CompraPagadoTotal * TipoCambioPago - IVAAcreditable * TipoCambioPago + CompraPagadoRetIVA * TipoCambioPago + CompraPagadoRetISR * TipoCambioPago
'CODIGO que obtiene el max, de la cuenta contable, de las comprobaciones
IdCuentaBancos = DtDatosComprobacionesPagos.FiltraParametros(String.Format("CveCompra = {0}", gvr.DataKey("CveCompra"))).MAX("IdCtaContable").ToString.ToEntero
Dim IdProveedor As Integer = -1
If IdCuentaProveedor > 0 Then
'busco la clave del proveedor en la contabilidad por su cuenta contable
If Conta.GetProveedores(IdCuentaContable:=IdCuentaProveedor) Then
If Conta.DtResultados.Rows.Count > 0 Then
Dim dr As DataRow = Conta.DtResultados.Rows(0)
IdProveedor = dr("Id").ToString.ToEntero
End If
End If
Else
'registro el proveedor generico
Select Case UsuarioActual.CveEmpresa
Case 66 : IdProveedor = 12726
Case Else : IdProveedor = 1
End Select
End If
If IdProveedor <= 0 Then
IdProveedor = Conta.AddProveedor(IdCuentaProveedor, gvrc.FCHiddenField("HdnRFC").Value, gvrc.FCHiddenField("HdnRazonSocial").Value, "")
If IdProveedor <= 0 Then
MsgError = "No se pudo insertar movimientos de devoluciones de IVA" : Exit For
End If
End If
Dim UUID As String = gvrc.FCHiddenField("HdnUUID").Value
If IdCuentaBancos > 0 AndAlso Not Conta.AddDevolucionesIVA(IDPoliza, IdCuentaBancos, IdProveedor, 16,
SubTotal,
IVAAcreditable * TipoCambioPago,
CompraPagadoRetIVA * TipoCambioPago,
CompraPagadoRetISR * TipoCambioPago,
Fecha, NumPoliza.ToString, gvrc.FCHiddenField("HdnSerie").Value, gvrc.FCHiddenField("HdnFolio").Value.StrToNum, UUID, UsuarioActual.CveEmpresa) Then
MsgError = "No se pudo insertar movimientos de devoluciones de IVA" : Exit For
End If
If MsgError = "" Then
Dim GuidMov As String = Guid.NewGuid().ToString()
Dim NoDeducible = False
Dim IVANoAcred As Decimal = 0 'si NoDeducible es true -- > Es el iva no deducible , ivano deducible totald e la compra
If Not Conta.AddMovimientoImpuesto(IDPoliza, IdCuentaBancos, IdProveedor, PorcentajeIVA, PorcentajeIVA, SubTotal, IVAAcreditable * TipoCambioPago,
Fecha, NumPoliza.ToString, gvrc.FCHiddenField("HdnSerie").Value, gvrc.FCHiddenField("HdnFolio").Value.StrToNum, UUID, NoDeducible, IVANoAcred, GuidMov, "", 1, 2) Then
MsgError = "No se pudo insertar movimientos de impuesto de IVA" : Exit For
End If
If MsgError = "" AndAlso CompraPagadoRetIVA > 0 Then
Dim GuidMovRetIVA As String = Guid.NewGuid().ToString()
Dim TasaOCuotaRetIVA As Decimal = (((CompraPagadoRetIVA * TipoCambioPago) / SubTotal) * 100).ToDecimal.RoundSQL(4)
If Not Conta.AddMovimientoImpuesto(IDPoliza, IdCuentaBancos, IdProveedor, PorcentajeIVA, TasaOCuotaRetIVA, SubTotal, CompraPagadoRetIVA * TipoCambioPago,
Fecha, NumPoliza.ToString, gvrc.FCHiddenField("HdnSerie").Value, gvrc.FCHiddenField("HdnFolio").Value.StrToNum, UUID, NoDeducible, IVANoAcred, GuidMovRetIVA, GuidMov, 2, 2) Then
MsgError = "No se pudo insertar movimientos de retención de IVA" : Exit For
End If
End If
If MsgError = "" AndAlso CompraPagadoRetISR > 0 Then
Dim GuidMovRetISR As String = Guid.NewGuid().ToString()
Dim TasaOCuotaRetIVA As Decimal = (((CompraPagadoRetISR * TipoCambioPago) / SubTotal) * 100).ToDecimal.RoundSQL(4)
If Not Conta.AddMovimientoImpuesto(IDPoliza, IdCuentaBancos, IdProveedor, PorcentajeIVA, TasaOCuotaRetIVA, SubTotal, CompraPagadoRetISR * TipoCambioPago,
Fecha, NumPoliza.ToString, gvrc.FCHiddenField("HdnSerie").Value, gvrc.FCHiddenField("HdnFolio").Value.StrToNum, UUID, NoDeducible, IVANoAcred, GuidMovRetISR, GuidMov, 2, 1) Then
MsgError = "No se pudo insertar movimientos de retención de ISR" : Exit For
End If
End If
End If
End If
'afecto los movimientos en los que se hizo el pago
For Each dcp As DataRow In DtDatosComprobacionesPagos.FiltraParametros(String.Format("CveCompra = {0}", gvr.DataKey("CveCompra"))).Rows
IdCuentaFuncionario = dcp("IdCtaContPersonal").ToString.ToEntero
If Not Conta.AddMovimiento(IDPoliza, IdCuentaFuncionario, True, dcp("importe").ToString.ToDecimal * TipoCambioCompra, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, 0, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, dcp("importe").ToString.ToDecimal, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
Next
If AbonoProveedor <> 0 Then
Dim TmpTotal As Decimal = 0
Dim TmpTotalME As Decimal = AbonoProveedor
If CveMoneda = 2 Then
'registro a la cuenta complementaria del proveedor
If gvr.DataKey("IdCtaContComplementaria").ToEntero > 0 Then
TmpTotal = Math.Round((AbonoProveedor * TipoCambioCompra * MultiNC) - AbonoProveedor, 2)
Else
AbonoProveedor = Math.Round(AbonoProveedor * TipoCambioCompra, 2)
End If
End If
If Not Conta.AddMovimiento(IDPoliza, IdCuentaProveedor, True, AbonoProveedor, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, 0, Fecha, gvrc.FCHiddenField("HdnCveProveedor").Value.ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, TmpTotalME, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
'complementaria
If TmpTotal <> 0 AndAlso Not Conta.AddMovimiento(IDPoliza, gvr.DataKey("IdCtaContComplementaria").ToEntero, TipoMovto, TmpTotal * MultiNC, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, 0, Fecha, gvrc.FCHiddenField("HdnCveProveedor").Value.ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, gvrc.FCHiddenField("HdnTotal").Value.ToDouble, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
' If Not Conta.AddMovimiento( IDPoliza, IdCuentaProveedor, True, AbonoProveedor, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, 0, Fecha, gvrc.FCHiddenField("HdnCveProveedor").Value.ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, AbonoProveedor, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
End If
'' G E N E R A F L U C T U A C I O N -------------------
''hago el movimiento de fluctuacion cambiaria
If CveMoneda = 2 Then
Dim FluctuacionCambiaria, FluctuacionCambiariaIVA As Double
''registro a la cuenta complementaria del proveedor
'If gvr.DataKey("IdCtaContComplementaria").ToEntero > 0 Then
' Dim TmpTotal As Double = Math.Round(CargoProveedor * TipoCambioCompra - CargoProveedor, 2)
' If TmpTotal > 0 AndAlso Not Conta.AddMovimiento( IDPoliza, gvr.DataKey("IdCtaContComplementaria").ToEntero, TipoMovto, TmpTotal, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, 0, Fecha, gvrc.FCHiddenField("HdnCveProveedor").Value.ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, gvrc.FCHiddenField("HdnTotal").Value.ToDouble, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
'End If
Dim CtaFluctuacion As Integer
Dim tempMovto As Boolean = False
If UsuarioActual.CveEmpresa = 66 Then
FluctuacionCambiariaIVA = Math.Round((IVAAcreditable * TipoCambioFechaCompra) - (IVAAcreditable * TipoCambioPago), 2) 'FLUCTUACION CAMBIARIA DE IVA
If FluctuacionCambiariaIVA < 0 Then
tempMovto = True ' ganancia cambiaria
Else
tempMovto = False ' perdida cambiaria
End If
If Math.Abs(FluctuacionCambiariaIVA) <> 0 Then
If Not Conta.AddMovimiento(IDPoliza, CtaFluctuacion, tempMovto, Math.Abs(FluctuacionCambiariaIVA), gvrc.FCHiddenField("HdnSerieFolio").Value, "Fluctuación IVA " & ConceptoDetalle, 0, Fecha, gvr.DataKey("CveProveedor").ContaReferencia(TipoContaReferencia.Proveedor), 0) Then MsgError = "No se pudo insertar movimiento contable" : Exit For ' no lleva moneda extranjera
End If
Else
'FluctuacionCambiaria = Math.Round((IVAAcreditable * TipoCambioCompra) - (IVAAcreditable * TipoCambioPago), 2) 'FLUCTUACION CAMBIARIA DE IVA
End If
FluctuacionCambiaria += Math.Round((CompraPagadoRetISR * TipoCambioCompra) - (CompraPagadoRetISR * TipoCambioPago), 2) 'FLUCTUACION CAMBIARIA DE ISR
Dim Dif As Double = (CompraPagadoTotal * TipoCambioPago) - Math.Round(CompraPagadoTotal * TipoCambioCompra, 2) + FluctuacionCambiaria
If Dif < 0 Then
tempMovto = True ' ganancia cambiaria
Else
tempMovto = False ' perdida cambiaria
End If
ConceptoDetalle = String.Format("{0} TC:{1} ${2}", gvr.FCTextBox("TxtDescripcion").Text, TipoCambioPago, Math.Abs(Dif).FormatoNumero)
If Math.Abs(Dif) <> 0 Then
If Not Conta.AddMovimiento(IDPoliza, CtaFluctuacion, tempMovto, Math.Abs(Dif), gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, 0, Fecha, gvr.DataKey("CveProveedor").ContaReferencia(TipoContaReferencia.Proveedor), 0) Then MsgError = "No se pudo insertar movimiento contable" : Exit For ' no lleva moneda extranjera
End If
End If
''hago el movimiento de fluctuacion cambiaria
'If gvr.DataKey("CveMoneda") = "2" AndAlso gvr.DataKey("IdCtaContComplementaria").ToEntero > 0 Then
' Dim FluctuacionCambiaria, FluctuacionCambiariaIVA As Decimal
' 'registro a la cuenta complementaria del proveedor
' Dim TmpTotal As Double = Math.Round(CompraPagadoTotal * TipoCambioCompra - (CompraPagadoTotal * MultiNC), 2) '' MultiNC es cuando es NC
' If Not Conta.AddMovimiento( IDPoliza, gvr.DataKey("IdCtaContComplementaria").ToEntero, TipoMovto, TmpTotal, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, 0, Fecha, gvrc.FCHiddenField("HdnCveProveedor").Value.ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, gvrc.FCHiddenField("HdnTotal").Value.ToDouble, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
' Dim CtaFluctuacion As Integer
' Dim tempMovto As Boolean = False
' FluctuacionCambiariaIVA = Math.Round((IVAAcreditable * TipoCambioFechaCompra) - (IVAAcreditable * TipoCambioPago), 2) 'FLUCTUACION CAMBIARIA DE IVA
' If FluctuacionCambiariaIVA < 0 Then
' CtaFluctuacion = UsuarioActual.Empresa.IdCuentaGananciaCambiaria : tempMovto = True ' ganancia cambiaria
' Else
' CtaFluctuacion = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria : tempMovto = False ' perdida cambiaria
' End If
' If Math.Abs(FluctuacionCambiariaIVA) <> 0 Then
' If Not Conta.AddMovimiento( IDPoliza, CtaFluctuacion, tempMovto, Math.Abs(FluctuacionCambiariaIVA), gvrc.FCHiddenField("HdnSerieFolio").Value, "Fluctuacion IVA " & ConceptoDetalle, 0, Fecha, gvr.DataKey("CveProveedor").ContaReferencia(TipoContaReferencia.Proveedor), 0) Then MsgError = "No se pudo insertar movimiento contable" : Exit For ' no lleva moneda extranjera
' End If
' FluctuacionCambiaria = Math.Round((CompraPagadoRetISR * TipoCambioCompra) - (CompraPagadoRetISR * TipoCambioPago), 2) 'FLUCTUACION CAMBIARIA DE ISR
' Dim Dif As Double = Math.Round((CompraPagadoTotal * TipoCambioPago) - (CompraPagadoTotal * TipoCambioCompra), 2) + FluctuacionCambiaria
' If Dif < 0 Then
' CtaFluctuacion = UsuarioActual.Empresa.IdCuentaGananciaCambiaria : tempMovto = True ' ganancia cambiaria
' Else
' CtaFluctuacion = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria : tempMovto = False ' perdida cambiaria
' End If
' ConceptoDetalle = String.Format("{0} TC:{1} ${2}", gvr.FCTextBox("TxtDescripcion").Text, TipoCambioPago, Math.Abs(Dif).FormatoNumero)
' If Math.Abs(Dif) <> 0 Then
' If Not Conta.AddMovimiento( IDPoliza, CtaFluctuacion, tempMovto, Math.Abs(Dif), gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, 0, Fecha, gvr.DataKey("CveProveedor").ContaReferencia(TipoContaReferencia.Proveedor), 0) Then MsgError = "No se pudo insertar movimiento contable" : Exit For ' no lleva moneda extranjera
' End If
'End If
'If AbonoFuncionario > 0 Then
' If Not Conta.AddMovimiento( IDPoliza, IdCuentaFuncionario, True, AbonoFuncionario, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, 0, Fecha, gvrc.FCHiddenField("HdnCveProveedor").Value.ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, AbonoAnticipo, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
'End If
Next
'If AbonoAnticipo > 0 Then
' If Not Conta.AddMovimiento( IDPoliza, IdCuentaAnticipo, True, AbonoAnticipo, "", ConceptoMov, 0, Fecha, gvr.DataKey("CveIE").ContaReferencia(TipoContaReferencia.Banco).ToString, If(MonExt, Total, 0.0) * MultNC) Then
' MsgError = "No se pudo insertar movimiento contable"
' End If
'End If
If MsgError = "" Then
Conta.AjustaPoliza(IDPoliza)
' PrePolizas.UpdatePoliza(Fecha, NumPoliza, IDPoliza, gvr.DataKey("CvePrePoliza").ToEntero, gvr.DataKey("CveEmpresa").ToEntero)
Conta.Commit()
PrePolizas.Commit()
UPPDatos.Update()
PolizasGeneradas.AppendFormat("&nbsp;&nbsp;&nbsp;<a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">Folio: {1}</a></center></br>", IDPoliza, NumPoliza)
'Alert(String.Format("<center>La póliza se ha generado correctamente <br/><br/> <a class=""Texto"" target='_blank' href=""/Contabilidad/Poliza.aspx?IdPoliza={0}"">Ver Póliza</a></center>", IDPoliza))
Else
Conta.RollBack()
PrePolizas.RollBack()
MsgErrorGeneral.AppendFormat("{0}{1}", gvr.FCLiteral("LitTT").Text, gvr.FCHyperLink("HplFolio").Text)
End If
End If
Next
Catch ex As Exception
Conta.RollBack()
PrePolizas.RollBack()
Alert(ex.Message)
End Try
Dim Msgg As String = ""
If PolizasGeneradas.Length > 0 Then
Msgg = PolizasGeneradas.ToString
End If
If MsgErrorGeneral.Length > 0 Then Msgg = String.Format("{0}{1}", Msgg, MsgErrorGeneral.ToString)
Alert(Msgg, TipoMensaje.MsgInformacion)
CargaDatos()
Conta.Dispose()
PrePolizas.Dispose()
Else
Alert("Seleccione factura(s) para contabilizar")
End If
End Sub
Private Sub ContabilizarNCs()
Dim TipoCambio As Double
Dim Contador As Integer = 0
Dim ContadorME As Integer = 0
Dim GvTmp As GridView = Nothing
GvTmp = GvNC
For Each gvr As GridViewRow In GvTmp.Rows
If gvr.FCCheckBox("Chk").Checked Then
Contador += 1
If gvr.DataKey("CveMonedaCompra") <> "1" Then
TipoCambio = TxtTC.Text.ToDouble : ContadorME += 1
Else : TipoCambio = 1
End If
' Total += (gvr.DataKey("Importe").ToDouble + gvr.DataKey("IVA").ToDouble) * TipoCambio
End If
Next
If ContadorME > 0 AndAlso TxtTC.Text.ToDouble <= 0 AndAlso RBLOpcion.SelectedValue = "1" Then
Alert("Ingrese un tipo de cambio.")
Exit Sub
End If
Dim TipoMovto As Boolean = False
If Contador > 0 Then
Dim Conta As ClsContPAQi = Nothing
Dim PrePolizas As ClsContabilidad = Nothing
Dim Bancos As ClsBancos = Nothing
Dim IDPoliza As Integer = 0
Dim Referencia As String
Dim ConceptoMov As String
Dim ConceptoDetalle, ConceptoTmp As String
Dim NumPoliza As Integer = 0
'Dim MultNC As Integer
Dim Concepto As String
Dim MonExt As Boolean
Dim TipoPoliza As String = ""
Dim Total As Double
Dim Fecha As Date
Dim IVAAcreditable, IVAxAcreditar As Decimal
Dim CveMoneda As Integer ', CvePrePoliza
Dim CvePlantillaPoliza As Integer
Dim CargoProveedor, CargoAnticipo, AbonoAnticipo, AbonoProveedor As Decimal
Dim IdCuentaProveedor, IdCuentaBancos, IdCuentaFuncionario As Integer ' IdCuentaFuncionario, IdCuentaDeudorDiverso,
Dim MsgError As String = ""
Dim MsgErrorGeneral As New StringBuilder
Dim PolizasGeneradas As New StringBuilder
Dim IdCuentaIVAxAcreditar, IdCuentaIVAAcreditable As Integer
Dim CompraTotal, IVAPagado, RetIVAPagado, RetISRPagado As Decimal
Dim Folio As String
Dim EsContabilizada, SimplificaIVAxAcreditar As Boolean
Dim CompraPagadoTotal, CompraPagadoRetIVA, CompraPagadoRetISR As Decimal
'Dim TotalFuncionarios As Decimal
Dim TipoCambioPago As Decimal
Dim TipoCambioCompra As Decimal
Dim TipoCambioFechaCompra As Decimal 'utiliza el tipo de cambio exclusivo de la fecha de la compra
Try
For Each gvr As GridViewRow In GvTmp.Rows
If gvr.FCCheckBox("Chk").Checked Then
Folio = ""
'----------------------------------------- Registro Movimientos Bancarios
ConceptoMov = gvr.FCTextBox("TxtDescripcion").Text
CvePlantillaPoliza = gvr.DataKey("CvePlantillaPoliza").ToEntero
'IdCuentaBancos = gvr.DataKey("IdCtaContBancos").ToEntero
'IdCtaContBancosComplementaria = gvr.DataKey("IdCtaContBancosComplementaria").ToEntero
Referencia = ConceptoMov
'si es otra diferente al peso
If gvr.DataKey("CveMonedaCompra") <> "1" Then
TipoCambio = TxtTC.Text.ToDouble
If RBLOpcion.SelectedValue = "1" Then TipoCambioPago = TxtTC.Text.ToDecimal Else TipoCambioPago = gvr.FCTextBox("TxtTC").Text.ToDecimal
MonExt = True
Concepto = String.Format("{0} TC:{1} ${2}", ConceptoMov, TxtTC.Text, gvr.DataKey("Total").ToDouble.FormatoNumero)
Else
TipoCambio = 1
TipoCambioCompra = 1
TipoCambioPago = 1
MonExt = False
Concepto = ConceptoMov
End If
Total = gvr.DataKey("Total").ToDouble
'inserto una poliza por pago
Conta = New ClsContPAQi(UsuarioActual.Empresa)
Conta.IniciaTransacSQL()
PrePolizas = New ClsContabilidad
Bancos = New ClsBancos(PrePolizas.IniciaTransacSQL())
MsgError = ""
Fecha = gvr.FCTextBox("TxtFecha").Text.ToDate
IDPoliza = Conta.AddPoliza(gvr.FCDropDownList("DdlPolizaTipo").SelectedValue.ToEntero, gvr.FCTextBox("TxtDescripcion").Text, Total, Total, UsuarioActual.CveUsuario, Fecha, Folio, TipoPoliza)
NumPoliza = Conta.Folio
Select Case gvr.DataKey("CvePlantillaPoliza")
Case "3" ' Anticipo
TipoMovto = False
Case "10" 'Amortizacion NC
TipoMovto = True
End Select
Dim GvCompras As GridView = gvr.FCGridView("GvPC")
For Each gvrc As GridViewRow In GvCompras.Rows
Dim PorcentajeIVA As Decimal = (gvrc.FCHiddenField("HdnPorcentajeIVA").Value.ToDecimal() * 100).ToEntero
AbonoProveedor = 0 : CargoProveedor = 0 : CargoAnticipo = 0 : AbonoAnticipo = 0
IdCuentaIVAxAcreditar = gvr.DataKey("IdCuentaIVAxAcreditar").ToEntero
IdCuentaIVAAcreditable = gvr.DataKey("IdCuentaIVAAcreditable").ToEntero
'IdCuentaRetIVA = gvrc.FCHiddenField("HdnIdCtaContRetIVA").Value.ToEntero
'IdCuentaRetISR = gvrc.FCHiddenField("HdnIdCtaContRetISR").Value.ToEntero
CompraTotal = gvrc.FCHiddenField("HdnTotal").Value.ToDecimal
IVAxAcreditar = 0
IVAAcreditable = gvrc.FCHiddenField("HdnIVA").Value.ToDecimal
CompraPagadoTotal = CompraTotal
IVAPagado = IVAAcreditable
RetIVAPagado = gvrc.FCHiddenField("HdnRetIVA").Value.ToDecimal
RetISRPagado = gvrc.FCHiddenField("HdnRetISR").Value.ToDecimal
EsContabilizada = gvrc.FCHiddenField("HdnCompraIdPoliza").Value.ToEntero > 0
ConceptoDetalle = gvrc.FCHiddenField("HdnRazonSocial").Value
TipoCambioFechaCompra = gvrc.FCHiddenField("HdnTCFechaCompra").Value.ToDecimal
CveMoneda = gvr.DataKey("CveMonedaCompra").ToEntero
IdCuentaProveedor = gvrc.FCHiddenField("HdnIdCtaContProveedores").Value.ToEntero
If Not Bancos.UpdateCompraPrePoliza(TxtFecha.Text.ToDate, NumPoliza.ToString, IDPoliza, gvrc.FCHiddenField("HdnCveCompra").Value.ToEntero, 8) Then MsgError = "Error al actualizar compra" : Exit For
'If Not Bancos.UpdateCompraPrePoliza(TxtFecha.Text.ToDate, NumPoliza, IDPoliza, gvrc.FCHiddenField("HdnCveCompra").Value.ToEntero, 9) Then MsgError = "Error al actualizar compra" : Exit For
'ya viene el tipo de cambio entre la fecha de compra y la ultima fluctuacion
If CveMoneda = 2 Then TipoCambioCompra = gvrc.FCHiddenField("HdnTC").Value.ToDecimal Else TipoCambioCompra = 1
''S I M P L I F I C A R
SimplificaIVAxAcreditar = False
If CargoAnticipo = AbonoAnticipo Then CargoAnticipo = 0 : AbonoAnticipo = 0
If IVAAcreditable = IVAxAcreditar Then IVAxAcreditar = 0 : SimplificaIVAxAcreditar = True
'sino esta contabilizada Registro los movimientos de la compra
If Not EsContabilizada Then
Dim GvDetalle As GridView = gvrc.FCGridView("GvD")
'sino esta contabilizada.. registro al gasto
If GvDetalle IsNot Nothing Then
For Each gvrr As GridViewRow In GvDetalle.Rows
'ConceptoDetalle = gvr.DataKey("RazonSocial") ' gvrr.FCLiteral("LitPS").Text
'Cargos += Math.Round(gvrr.FCLiteral("LitSubTotalPS").Text.ToDouble * TipoCambioCompra, 2)
If Not Conta.AddMovimiento(IDPoliza, gvrr.FCDropDownList("DdlM").SelectedValue.ToEntero, False, gvrr.FCLiteral("LitSubTotalPS").Text.ToDouble * TipoCambioCompra, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, 0, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, gvrr.FCLiteral("LitSubTotalPS").Text.ToDouble, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
Next
'debe de actualizar
'If Not Bancos.UpdateCompraPrePoliza(TxtFecha.Text.ToDate, NumPoliza.ToEntero, IDPoliza, gvrc.FCHiddenField("HdnCveCompra").Value.ToEntero) Then
' MsgError = "Error al actualizar compra" : Exit For
'End If
End If
End If
'If IVAxAcreditar > 0 Then
' If Not Conta.AddMovimiento( IDPoliza, IdCuentaIVAxAcreditar, False, (IVAxAcreditar * TipoCambioCompra), gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, 0, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, IVAxAcreditar, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
'End If
If IVAAcreditable > 0 Then 'iva Acreditable
ConceptoTmp = If(CveMoneda = 2, String.Format("{0} TC {1}", ConceptoDetalle, TipoCambioPago), ConceptoDetalle)
If Not Conta.AddMovimiento(IDPoliza, IdCuentaIVAAcreditable, False, IVAAcreditable * TipoCambioPago, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoTmp, 0, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, IVAAcreditable, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
Dim SubTotal As Double = CompraPagadoTotal * TipoCambioPago - IVAAcreditable * TipoCambioPago + CompraPagadoRetIVA * TipoCambioPago + CompraPagadoRetISR * TipoCambioPago
'CODIGO que obtiene el max, de la cuenta contable, de las comprobaciones
IdCuentaBancos = DtDatosComprobacionesPagos.FiltraParametros(String.Format("CveCompra = {0}", gvr.DataKey("CveCompra"))).MAX("IdCtaContable").ToString.ToEntero
Dim IdProveedor As Integer = -1
If IdCuentaProveedor > 0 Then
'busco la clave del proveedor en la contabilidad por su cuenta contable
If Conta.GetProveedores(IdCuentaContable:=IdCuentaProveedor) Then
If Conta.DtResultados.Rows.Count > 0 Then
Dim dr As DataRow = Conta.DtResultados.Rows(0)
IdProveedor = dr("Id").ToString.ToEntero
End If
End If
Else
'registro el proveedor generico
Select Case UsuarioActual.CveEmpresa
Case 66 : IdProveedor = 12726
Case Else : IdProveedor = 1
End Select
End If
If IdProveedor <= 0 Then
IdProveedor = Conta.AddProveedor(IdCuentaProveedor, gvrc.FCHiddenField("HdnRFC").Value, gvrc.FCHiddenField("HdnRazonSocial").Value, "")
If IdProveedor <= 0 Then
MsgError = "No se pudo insertar movimientos de devoluciones de IVA" : Exit For
End If
End If
Dim UUID As String = gvrc.FCHiddenField("HdnUUID").Value
If Not Conta.AddDevolucionesIVA(IDPoliza, IdCuentaBancos, IdProveedor, 16,
SubTotal,
IVAAcreditable * TipoCambioPago,
CompraPagadoRetIVA * TipoCambioPago,
CompraPagadoRetISR * TipoCambioPago,
Fecha, NumPoliza.ToString, gvrc.FCHiddenField("HdnSerie").Value, gvrc.FCHiddenField("HdnFolio").Value.StrToNum, UUID, UsuarioActual.CveEmpresa) Then
MsgError = "No se pudo insertar movimientos de devoluciones de IVA" : Exit For
End If
If MsgError = "" Then
Dim GuidMov As String = Guid.NewGuid().ToString()
Dim NoDeducible = False
Dim IVANoAcred As Decimal = 0 'si NoDeducible es true -- > Es el iva no deducible , ivano deducible totald e la compra
If Not Conta.AddMovimientoImpuesto(IDPoliza, IdCuentaBancos, IdProveedor, PorcentajeIVA, PorcentajeIVA, SubTotal, IVAAcreditable * TipoCambioPago,
Fecha, NumPoliza.ToString, gvrc.FCHiddenField("HdnSerie").Value, gvrc.FCHiddenField("HdnFolio").Value.StrToNum, UUID, NoDeducible, IVANoAcred, GuidMov, "", 1, 2) Then
MsgError = "No se pudo insertar movimientos de impuesto de IVA" : Exit For
End If
If MsgError = "" AndAlso CompraPagadoRetIVA > 0 Then
Dim GuidMovRetIVA As String = Guid.NewGuid().ToString()
Dim TasaOCuotaRetIVA As Decimal = (((CompraPagadoRetIVA * TipoCambioPago) / SubTotal) * 100).ToDecimal.RoundSQL(4)
If Not Conta.AddMovimientoImpuesto(IDPoliza, IdCuentaBancos, IdProveedor, PorcentajeIVA, TasaOCuotaRetIVA, SubTotal, CompraPagadoRetIVA * TipoCambioPago,
Fecha, NumPoliza.ToString, gvrc.FCHiddenField("HdnSerie").Value, gvrc.FCHiddenField("HdnFolio").Value.StrToNum, UUID, NoDeducible, IVANoAcred, GuidMovRetIVA, GuidMov, 2, 2) Then
MsgError = "No se pudo insertar movimientos de retención de IVA" : Exit For
End If
End If
If MsgError = "" AndAlso CompraPagadoRetISR > 0 Then
Dim GuidMovRetISR As String = Guid.NewGuid().ToString()
Dim TasaOCuotaRetIVA As Decimal = (((CompraPagadoRetISR * TipoCambioPago) / SubTotal) * 100).ToDecimal.RoundSQL(4)
If Not Conta.AddMovimientoImpuesto(IDPoliza, IdCuentaBancos, IdProveedor, PorcentajeIVA, TasaOCuotaRetIVA, SubTotal, CompraPagadoRetISR * TipoCambioPago,
Fecha, NumPoliza.ToString, gvrc.FCHiddenField("HdnSerie").Value, gvrc.FCHiddenField("HdnFolio").Value.StrToNum, UUID, NoDeducible, IVANoAcred, GuidMovRetISR, GuidMov, 2, 1) Then
MsgError = "No se pudo insertar movimientos de retención de ISR" : Exit For
End If
End If
End If
End If
'afecto los movimientos en los que se hizo el pago
For Each dcp As DataRow In DtDatosComprobacionesPagos.FiltraParametros(String.Format("CveCompra = {0}", gvr.DataKey("CveCompra"))).Rows
IdCuentaFuncionario = dcp("IdCtaContPersonal").ToString.ToEntero
If Not Conta.AddMovimiento(IDPoliza, IdCuentaFuncionario, True, dcp("importe").ToString.ToDecimal * TipoCambioCompra, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, 0, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, dcp("importe").ToString.ToDecimal, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
Next
Next
If MsgError = "" Then
Conta.AjustaPoliza(IDPoliza)
'PrePolizas.UpdatePoliza(Fecha, NumPoliza, IDPoliza, gvr.DataKey("CvePrePoliza").ToEntero, gvr.DataKey("CveEmpresa").ToEntero)
Conta.Commit()
PrePolizas.Commit()
UPPDatos.Update()
PolizasGeneradas.AppendFormat("&nbsp;&nbsp;&nbsp;<a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">Folio: {1}</a></center></br>", IDPoliza, NumPoliza)
'Alert(String.Format("<center>La póliza se ha generado correctamente <br/><br/> <a class=""Texto"" target='_blank' href=""/Contabilidad/Poliza.aspx?IdPoliza={0}"">Ver Póliza</a></center>", IDPoliza))
Else
Conta.RollBack()
PrePolizas.RollBack()
MsgErrorGeneral.AppendFormat("{0}{1}", gvr.FCLiteral("LitTT").Text, gvr.FCHyperLink("HplFolio").Text)
End If
End If
Next
Catch ex As Exception
Conta.RollBack()
PrePolizas.RollBack()
Alert(ex.Message)
End Try
Dim Msgg As String = ""
If PolizasGeneradas.Length > 0 Then
Msgg = PolizasGeneradas.ToString
End If
If MsgErrorGeneral.Length > 0 Then Msgg = String.Format("{0}{1}", Msgg, MsgErrorGeneral.ToString)
Alert(Msgg, TipoMensaje.MsgInformacion)
CargaDatos()
Conta.Dispose()
PrePolizas.Dispose()
Else
Alert("Seleccione factura(s) para contabilizar")
End If
End Sub
Private Sub GvNC_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvNC.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.FCDropDownList("DdlPolizaTipo").DataSource = DtTiposPoliza
e.Row.FCDropDownList("DdlPolizaTipo").DataBind()
e.Row.FCDropDownList("DdlPolizaTipo").SelectedValue = "3"
e.Row.FCCheckBox("Chk").Visible = True
Dim gvC As GridView = e.Row.FCGridView("GvPC")
Dim dtcompras As DataTable = Nothing
If e.Row.DBCampo("CveCompra").ToEntero > 0 Then
dtcompras = DtDatosNotasCredito.FiltraParametros(String.Format("CveCompra = {0} AND CvePS = -1 ", e.Row.DBCampo("CveCompra")))
End If
gvC.DataSource = dtcompras
gvC.DataBind()
'If e.Row.DBCampo("IdCtaContBancos").ToEntero = 0 Then
' 'falta vicularse el proveedor
' e.Row.FCHyperLink("HplC").ForeColor = Drawing.Color.OrangeRed
' e.Row.FCHyperLink("HplC").ToolTip = "Falta vincular la cuenta contable a la cuenta bancaria"
'End If
'If e.Row.DBCampo("IdCtaContPersonal").ToEntero = 0 Then
' 'falta vicularse el proveedor
' e.Row.FCHyperLink("HplP").ForeColor = Drawing.Color.OrangeRed
' e.Row.FCHyperLink("HplP").ToolTip = "Falta vincular la cuenta contable"
'End If
'If e.Row.DBCampo("ValidoCuenta") = "1" Then
' e.Row.FCCheckBox("Chk").Visible = True
' ''pero si hay compras sin contabilizar, y la factura no tenga completa las clasificaciones
' If dtcompras IsNot Nothing AndAlso dtcompras.Rows.Count > 0 AndAlso dtcompras.MIN("Valido") = "0" Then
' e.Row.FCCheckBox("Chk").Visible = False
' End If
'End If
End If
End Sub
End Class