1896 lines
105 KiB
VB.net
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(" <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(" <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(" <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
|