1826 lines
99 KiB
VB.net
1826 lines
99 KiB
VB.net
Imports System.Data
|
|
Imports Extensiones
|
|
Imports System.Web.Services
|
|
|
|
Partial Class Contabilidad_DiarioPagos
|
|
Inherits ClsPaginas
|
|
|
|
|
|
#Region "Propiedades"
|
|
|
|
|
|
Private Property DtDatos As DataTable
|
|
Get
|
|
Return CType(ViewState("DtDatos"), DataTable)
|
|
End Get
|
|
Set(value As DataTable)
|
|
ViewState("DtDatos") = value
|
|
End Set
|
|
End Property
|
|
|
|
|
|
Private Property DtDatosCompras As DataTable
|
|
Get
|
|
Return CType(ViewState("DtDatosCompras"), DataTable)
|
|
End Get
|
|
Set(value As DataTable)
|
|
ViewState("DtDatosCompras") = value
|
|
End Set
|
|
End Property
|
|
|
|
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 DtDatosTransf As DataTable
|
|
Get
|
|
Return CType(ViewState("DtDatosTransf"), DataTable)
|
|
End Get
|
|
Set(value As DataTable)
|
|
ViewState("DtDatosTransf") = 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
|
|
|
|
#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
|
|
|
|
txtFechaI.Text = Now.AddMonths(0).FirstDayOfMonth.ToShortDateString
|
|
txtFechaF.Text = Now.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
|
|
|
|
CargaDatos(-1)
|
|
|
|
Cc.Dispose()
|
|
Else
|
|
Alert("Este módulo requiere el uso de Contabilidad.", TipoMensaje.MsgAdvertencia)
|
|
BtnConsultar.Enabled = False
|
|
BtnContabilizar.Enabled = False
|
|
End If
|
|
|
|
|
|
CargaCuenta()
|
|
CargaTipoTransaccion("-1")
|
|
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub CargaCuenta()
|
|
DdlCuenta.Items.Clear()
|
|
DdlCuenta.DataSource = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("CveTipoCuenta IN (2)")
|
|
DdlCuenta.DataBind()
|
|
DdlCuenta.Items.Insert(0, New ListItem("Todas", "-1"))
|
|
End Sub
|
|
|
|
Private Sub CargaTipoTransaccion(Tipo As String)
|
|
DdlTipoTransaccion.Items.Clear()
|
|
DdlTipoTransaccion.DataSource = GlobalDTTipoTransacciones.FiltraParametros("Tipo = 'Egs' ")
|
|
DdlTipoTransaccion.DataBind()
|
|
DdlTipoTransaccion.Items.Insert(0, New ListItem("Todos", "-1"))
|
|
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.GetDiarioPagosCompras(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
|
|
|
|
DtDatos = 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.
|
|
DtDatosCompras = ds.Tables(1)
|
|
|
|
GvC.DataSource = DtDatos
|
|
GvC.DataBind()
|
|
|
|
LblTotComp.Text = String.Format("{0} Registros", DtDatos.Rows.Count)
|
|
End If
|
|
|
|
If DtDatos IsNot Nothing AndAlso DtDatos.FiltraParametros("CveMoneda <> 1").Rows.Count > 0 Then
|
|
'hay movimientos que son diferentes a pesos
|
|
TbTipoCambio.Visible = True
|
|
|
|
Dim Cc As New ClsContPAQi(UsuarioActual.Empresa)
|
|
TxtTC.Text = Cc.getTipoCambio(Today).ToString
|
|
Cc.Dispose()
|
|
|
|
If TxtTC.Text.ToDouble > 0 Then TxtTC.Enabled = False Else TxtTC.Text = ""
|
|
|
|
|
|
End If
|
|
|
|
End If
|
|
'------------------------------------------ consulto F y E
|
|
If CargaOpcion.Contiene(-1, 1) Then
|
|
|
|
|
|
ds = Conta.GetDiarioPagosCompras(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)
|
|
DtDatosFyECompras = ds.Tables(1)
|
|
|
|
GvFyE.DataSource = DtDatosFyE
|
|
GvFyE.DataBind()
|
|
End If
|
|
End If
|
|
|
|
' '------------------------------------------ consulto Transferencias
|
|
If CargaOpcion.Contiene(-1, 2) Then
|
|
|
|
|
|
ds = Conta.GetDiarioPagosCompras(DdlProveedores.SelectedValue.ToEntero, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, 3, DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, UsuarioActual.CveEmpresa)
|
|
If ds IsNot Nothing AndAlso ds.Tables.Count = 1 Then
|
|
DtDatosTransf = ds.Tables(0)
|
|
|
|
GvT.DataSource = DtDatosTransf.FiltraParametros("TipoRenglon = 0")
|
|
|
|
GvT.DataBind()
|
|
End If
|
|
End If
|
|
|
|
' '------------------------------------------ consulto anticipos
|
|
|
|
If CargaOpcion.Contiene(-1, 3) Then
|
|
|
|
|
|
ds = Conta.GetDiarioPagosCompras(DdlProveedores.SelectedValue.ToEntero, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, 4, DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, UsuarioActual.CveEmpresa)
|
|
|
|
If ds IsNot Nothing AndAlso ds.Tables.Count = 2 Then
|
|
DtDatosAnticipos = ds.Tables(0)
|
|
DtDatosAnticiposCompras = ds.Tables(1)
|
|
|
|
GvAnt.DataSource = DtDatosAnticipos
|
|
|
|
GvAnt.DataBind()
|
|
End If
|
|
End If
|
|
|
|
UPPDatos.Update()
|
|
|
|
Conta.Dispose()
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
Protected Sub GvC_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvC.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
|
|
|
|
If RBLOpcion.SelectedValue = "2" Then ' por separado
|
|
e.Row.FCDropDownList("DdlPolizaTipo").DataSource = DtTiposPoliza
|
|
e.Row.FCDropDownList("DdlPolizaTipo").DataBind()
|
|
e.Row.FCDropDownList("DdlPolizaTipo").SelectedValue = "2"
|
|
e.Row.FindControl("TrConta").Visible = True
|
|
Else
|
|
e.Row.FindControl("TrConta").Visible = False
|
|
End If
|
|
|
|
|
|
Dim gvC As GridView = e.Row.FCGridView("GvPC")
|
|
Dim tDtCompras As DataTable = DtDatosCompras.FiltraParametros(String.Format("CveIE = {0} AND CvePS = -1 ", e.Row.DBCampo("CveIE")))
|
|
|
|
gvC.DataSource = tDtCompras
|
|
gvC.DataBind()
|
|
|
|
Dim Simplificar As Boolean = False
|
|
|
|
If e.Row.DBCampo("IdCtaContBancos").ToEntero > 0 Then ' que sea valido en los IEs
|
|
' valido en las compras
|
|
If tDtCompras.MIN("Valido") = "1" AndAlso e.Row.DBCampo("Valido") = "1" Then
|
|
e.Row.FCCheckBox("Chk").Visible = True
|
|
|
|
''pero si hay compras sin contabilizar, lo va a requerir siempre y cuando no se pague el 100%
|
|
If e.Row.DBCampo("IdCtaContProveedores").ToEntero = 0 AndAlso tDtCompras.MIN("CompraIdPoliza") = "0" AndAlso e.Row.DBCampo("Importe").ToDouble < tDtCompras.SUM("Total") Then
|
|
e.Row.FCCheckBox("Chk").Visible = False
|
|
End If
|
|
|
|
''si hay compras contabilizadas, lo va a requerir siempre
|
|
If e.Row.DBCampo("IdCtaContProveedores").ToEntero = 0 AndAlso tDtCompras.MIN("CompraIdPoliza") = "1" Then
|
|
e.Row.FCCheckBox("Chk").Visible = False
|
|
End If
|
|
|
|
Else
|
|
'sino tiene cuenta el proveedor, pero el total de las comras y el cheque son iguales, y las compras tiene cuenta vinculada
|
|
If e.Row.DBCampo("IdCtaContProveedores").ToEntero = 0 AndAlso tDtCompras.MIN("CompraIdPoliza") = "0" And tDtCompras.MIN("Valido") = "1" AndAlso e.Row.DBCampo("Importe").ToDouble = tDtCompras.SUM("Total") Then
|
|
e.Row.FCCheckBox("Chk").Visible = True
|
|
End If
|
|
|
|
'sino tiene cuenta el proveedor, pero el total de las comras y el cheque son iguales, y las compras tiene cuenta vinculada
|
|
If e.Row.DBCampo("IdCtaContProveedores").ToEntero = 0 AndAlso tDtCompras.MIN("CompraIdPoliza") = "0" And tDtCompras.MIN("Valido") = "1" AndAlso e.Row.DBCampo("Importe").ToDouble = tDtCompras.SUM("Total") Then
|
|
e.Row.FCCheckBox("Chk").Visible = True
|
|
End If
|
|
|
|
If e.Row.DBCampo("CveEstatusIE") = "2" AndAlso e.Row.DBCampo("Importe").ToDouble = 0 Then
|
|
e.Row.FCCheckBox("Chk").Visible = True
|
|
End If
|
|
|
|
'sino tiene cuenta
|
|
'si la compra es mayor o igual al anticipo, se simplifica el movimiento a anticipos
|
|
If e.Row.DBCampo("CvePlantillaPoliza").ToEntero.Contiene(10, 52, 1) AndAlso e.Row.DBCampo("IdCtaContBancos").ToEntero > 0 AndAlso tDtCompras IsNot Nothing AndAlso tDtCompras.Rows.Count > 0 AndAlso tDtCompras.SUM("Total") >= e.Row.DBCampo("Importe") AndAlso (e.Row.DBCampo("CveMoneda") = "1" OrElse (e.Row.DBCampo("CveMoneda") = "2" AndAlso e.Row.DBCampo("IdCtaContExtranjera").ToEntero > 0)) Then
|
|
Simplificar = True
|
|
e.Row.FCCheckBox("Chk").Visible = True
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
'FALTA LA FUNCIONALIDAD DE QUE SEA REQUERIDA LA COMPLEMENTARIA
|
|
'If e.Row.DBCampo("CveMoneda").ToEntero = 2 AndAlso e.Row.DBCampo("IdCtaContBancosComplementaria").ToEntero <= 0 Then ' que sea valido en los IEs
|
|
' e.Row.FCCheckBox("Chk").Visible = False
|
|
' e.Row.FCHyperLink("HplCuenta").ForeColor = Drawing.Color.OrangeRed
|
|
' e.Row.FCHyperLink("HplCuenta").ToolTip = "Falta vincular la cuenta contable complementaria de la cuenta bancaria"
|
|
'End If
|
|
|
|
'falta funcionalidad para detectar que siempre use complementaria
|
|
'If e.Row.DBCampo("CveMoneda").ToEntero = 2 AndAlso e.Row.DBCampo("IdCtaContComplementaria").ToEntero <= 0 Then ' que sea valido en los IEs
|
|
' e.Row.FCCheckBox("Chk").Visible = False
|
|
' 'e.Row.FCHyperLink("HplProv").ForeColor = Drawing.Color.OrangeRed
|
|
' 'e.Row.FCHyperLink("HplProv").ToolTip = "Falta vincular la cuenta contable complementaria de la cuenta bancaria"
|
|
'End If
|
|
|
|
'If e.Row.DBCampo("IdCtaContProveedores").ToEntero = 0 Then
|
|
' 'falta vincularse el proveedor
|
|
' If e.Row.FCHyperLink("HplProv") IsNot Nothing Then
|
|
' e.Row.FCHyperLink("HplProv").ForeColor = Drawing.Color.OrangeRed
|
|
' e.Row.FCHyperLink("HplProv").ToolTip = "Falta vincular la cuenta contable"
|
|
|
|
' End If
|
|
|
|
'End If
|
|
|
|
'cuando es anticipo
|
|
If e.Row.DBCampo("CveMoneda").ToEntero = 1 AndAlso e.Row.DBCampo("IdCtaContAnticipos").ToEntero = 0 AndAlso e.Row.DBCampo("CvePlantillaPoliza").Contiene(10, 52) And Simplificar = False Then
|
|
'falta vicularse la cuenta
|
|
e.Row.FCTextBox("TxtDescripcion").ForeColor = Drawing.Color.OrangeRed
|
|
e.Row.FCTextBox("TxtDescripcion").ToolTip = "Falta vincular la cuenta contable de anticipos"
|
|
|
|
End If
|
|
|
|
If e.Row.DBCampo("IdCuentaIVAAcreditable").ToEntero = 0 Then
|
|
'falta vicularse el proveedor
|
|
e.Row.FCLabel("LblIVA").ForeColor = Drawing.Color.OrangeRed
|
|
e.Row.FCLabel("LblIVA").ToolTip = "Falta vincular la cuenta contable"
|
|
End If
|
|
|
|
|
|
If e.Row.DBCampo("IdCtaContBancos").ToEntero = 0 Then
|
|
'falta vicularse el proveedor
|
|
e.Row.FCHyperLink("HplCuenta").ForeColor = Drawing.Color.OrangeRed
|
|
e.Row.FCHyperLink("HplCuenta").ToolTip = "Falta vincular la cuenta contable a la cuenta bancaria"
|
|
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
|
|
|
|
Select Case DirectCast(DirectCast(e.Row.BindingContainer, GridView).NamingContainer.BindingContainer, GridView).ID
|
|
Case "GvAnt"
|
|
dtt = DtDatosAnticiposCompras
|
|
Case "GvFyE"
|
|
dtt = DtDatosFyECompras
|
|
Case Else
|
|
dtt = DtDatosCompras
|
|
End Select
|
|
|
|
|
|
If e.Row.DBCampo("CveIE").ToEntero > 0 Then 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("CveMonedaCompra") = "2" 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
|
|
|
|
e.Row.FCLabel("LblTC").Text = TipoCambioFluctuacion.ToString
|
|
e.Row.FCLabel("LblTC").ToolTip = String.Format("Fecha Tipo Cambio: {0}", FechaFluctuacion.ToShortDateString)
|
|
|
|
'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
|
|
|
|
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
|
|
|
|
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 BtnContabilizar_Click(sender As Object, e As EventArgs) Handles BtnContabilizar.Click
|
|
|
|
If Tabs.ActiveTabIndex = 0 Then ' AndAlso UsuarioActual.CveEmpresa.Contiene(13, 66)
|
|
ContabilizarCompras(1)
|
|
Exit Sub
|
|
End If
|
|
|
|
If Tabs.ActiveTabIndex = 1 Then
|
|
ContabilizarCompras(3) 'funcionarios y empleados
|
|
Exit Sub
|
|
End If
|
|
|
|
If Tabs.ActiveTabIndex = 2 Then ' transferencias
|
|
ContabilizarTransferencias()
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
If Tabs.ActiveTabIndex = 3 Then ' anticipos
|
|
ContabilizarCompras(2)
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub ContabilizarCompras(Opcion As Integer)
|
|
|
|
|
|
Dim Contador As Integer = 0
|
|
Dim ContadorME As Integer = 0
|
|
Dim GvTmp As GridView
|
|
Dim TipoCambioCompra As Decimal ' se utiliza el tipo de cambio con fecha mayor, entre la fecha de la compra y la ultima fluctuacion
|
|
Dim TipoCambioPago As Decimal ' utiliza el tipo de cambio del pago
|
|
Dim TipoCambioFechaCompra As Decimal 'utiliza el tipo de cambio exclusivo de la fecha de la compra
|
|
|
|
Select Case Opcion
|
|
Case 3
|
|
GvTmp = GvFyE
|
|
Case 2
|
|
GvTmp = GvAnt
|
|
Case Else
|
|
GvTmp = GvC
|
|
End Select
|
|
|
|
|
|
For Each gvr As GridViewRow In GvTmp.Rows
|
|
If gvr.FCCheckBox("Chk").Checked Then
|
|
Contador += 1
|
|
If gvr.DataKey("CveMoneda") <> "1" Then
|
|
TipoCambioPago = TxtTC.Text.ToDouble : ContadorME += 1
|
|
Else : TipoCambioPago = 1
|
|
End If
|
|
|
|
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 Bancos As ClsBancos = Nothing
|
|
Dim IDPoliza As Integer = 0
|
|
Dim Referencia As String
|
|
Dim ConceptoMov As String
|
|
Dim NumPoliza As String = ""
|
|
|
|
Dim ConceptoDetalle, ConceptoTmp As String
|
|
'Dim CuentaAfectable As Integer
|
|
Dim Cargos As Decimal
|
|
Dim MonExt As Boolean
|
|
Dim TipoPoliza As String = ""
|
|
Dim CompraPagadoTotal, CompraPagadoRetIVA, CompraPagadoRetISR As Decimal
|
|
Dim CompraTotal, CompraRetIVA, CompraRetISR, AbonoCompraRetISR, AbonoProveedor, AbonoAnticipo, AbonoDeudorDiverso, AbonoFuncionario As Decimal
|
|
Dim IdCuentaIVAxAcreditar, IdCuentaIVAAcreditable, IdCuentaRetIVA, IdCuentaRetISR, IdCuentaRetIVACirculacion, IdCuentaRetISRCirculacion As Integer
|
|
Dim EsContabilizada, SimplificaIVAxAcreditar, SimplificaRetIVA As Boolean
|
|
Dim CvePlantillaPoliza As Integer
|
|
Dim IEContabilizado As Boolean = False
|
|
Dim TotalBancos, TotalAnticipos, TotalProveedores, TotalDeudoresDiversos, TotalFuncionarios As Decimal
|
|
Dim IVAAcreditable, IVAxAcreditar, IVAAcreditablePago As Decimal
|
|
Dim CargoProveedor, CargoAnticipo As Decimal
|
|
Dim CveMoneda, CvePrePoliza As Integer
|
|
Dim IdCuentaProveedor, IdCuentaAnticipo, IdCuentaBancos, IdCuentaFuncionario, IdCuentaDeudorDiverso, IdCtaContBancosComplementaria, IdCtaContAnticiposComplementaria As Integer
|
|
Dim GUIDMovimiento As String = ""
|
|
|
|
Dim MsgError As String = ""
|
|
Dim MsgErrorGeneral As New StringBuilder
|
|
Dim PolizasGeneradas As New StringBuilder
|
|
Try
|
|
|
|
If UsuarioActual.Empresa.UsaContabilidad Then
|
|
Conta = New ClsContPAQi(UsuarioActual.Empresa)
|
|
Conta.IniciaTransacSQL()
|
|
Bancos = New ClsBancos()
|
|
Bancos.IniciaTransacSQL()
|
|
'Dim Compra As New ClsCompras(Bancos.IniciaTransacSQL)
|
|
|
|
If RBLOpcion.SelectedValue = "1" Then
|
|
'si es la emp=66 debe de tener un
|
|
IDPoliza = Conta.AddPoliza(DdlPolizaTipo.SelectedValue.ToEntero, TxtDescripcion.Text, 0, 0, UsuarioActual.CveUsuario, TxtFecha.Text.ToDate, pTipo:=TipoPoliza)
|
|
NumPoliza = Conta.Folio.ToString
|
|
Else
|
|
IDPoliza = -1
|
|
End If
|
|
|
|
'inserto la póliza
|
|
If IDPoliza = 0 Then
|
|
MsgError = "No se pudo insertar la póliza contable."
|
|
Else
|
|
|
|
Dim Fecha As Date = TxtFecha.Text.ToDate
|
|
Dim IdSegNeg As Integer = 0
|
|
Dim Folio As String = ""
|
|
|
|
|
|
For Each gvr As GridViewRow In GvTmp.Rows
|
|
If gvr.FCCheckBox("Chk").Checked Then
|
|
'----------------------------------------- Registro Movimientos Bancarios
|
|
ConceptoMov = String.Format("{0}: {1}", gvr.DataKey("TipoTransAbreviatura"), gvr.DataKey("Folio")) 'gvr.DataKey("SerieFolio") '
|
|
Referencia = String.Format("{0}: {1}", gvr.DataKey("TipoTransAbreviatura"), gvr.DataKey("Folio"))
|
|
CvePlantillaPoliza = gvr.DataKey("CvePlantillaPoliza").ToEntero
|
|
CvePrePoliza = gvr.DataKey("CvePrePoliza").ToEntero
|
|
IdCuentaBancos = gvr.DataKey("IdCtaContBancos").ToEntero
|
|
IdCtaContBancosComplementaria = gvr.DataKey("IdCtaContBancosComplementaria").ToEntero
|
|
|
|
TotalBancos = gvr.DataKey("Importe").ToDecimal
|
|
CveMoneda = gvr.DataKey("CveMoneda").ToEntero
|
|
|
|
TotalProveedores = 0 : TotalAnticipos = 0 : TotalDeudoresDiversos = 0 : TotalFuncionarios = 0
|
|
|
|
|
|
'si es otra diferente al peso
|
|
If gvr.DataKey("CveMoneda") <> "1" Then
|
|
If RBLOpcion.SelectedValue = "1" Then TipoCambioPago = TxtTC.Text.ToDecimal Else TipoCambioPago = gvr.FCTextBox("TxtTC").Text.ToDecimal
|
|
MonExt = True
|
|
ConceptoMov = String.Format("{0} TC:{1} ${2}", ConceptoMov, TipoCambioPago, gvr.DataKey("Importe").ToDouble.FormatoNumero)
|
|
If TipoCambioPago <= 0 Then MsgErrorGeneral.Append("Tipo de Cambio en Cero") : Exit For
|
|
Else
|
|
TipoCambioCompra = 1
|
|
TipoCambioPago = 1
|
|
MonExt = False
|
|
End If
|
|
|
|
Cargos = 0
|
|
|
|
|
|
Select Case UsuarioActual.CveEmpresa
|
|
Case 13
|
|
Select Case gvr.DataKey("CveTipoTransaccion")
|
|
Case "1" 'cheque
|
|
Folio = gvr.DataKey("Folio")
|
|
TipoPoliza = "CHQ"
|
|
Case "2" ' transferencia
|
|
Folio = "-1"
|
|
TipoPoliza = "TRAN"
|
|
Case Else
|
|
Folio = "-1"
|
|
TipoPoliza = ""
|
|
End Select
|
|
Case 66
|
|
Folio = "-1"
|
|
Select Case gvr.DataKey("CveTipoTransaccion")
|
|
Case "1" 'cheque
|
|
TipoPoliza = String.Format("3-{0}", gvr.DataKey("PrefijoConta").PadRight(3, "0"c))
|
|
Case "2", "9" ' transferencia y layout
|
|
TipoPoliza = String.Format("1-{0}", gvr.DataKey("PrefijoConta").PadRight(3, "0"c))
|
|
Case Else
|
|
TipoPoliza = ""
|
|
End Select
|
|
|
|
End Select
|
|
|
|
|
|
|
|
If RBLOpcion.SelectedValue = "2" Then
|
|
'inserto una poliza por pago
|
|
Conta.IniciaTransacSQL() : Bancos.IniciaTransacSQL()
|
|
|
|
MsgError = ""
|
|
Fecha = gvr.FCTextBox("TxtFecha").Text.ToDate
|
|
IDPoliza = Conta.AddPoliza(gvr.FCDropDownList("DdlPolizaTipo").SelectedValue.ToEntero, gvr.FCTextBox("TxtDescripcion").Text, 0, 0, UsuarioActual.CveUsuario, Fecha, Folio, TipoPoliza)
|
|
NumPoliza = Conta.Folio.ToString
|
|
|
|
End If
|
|
|
|
|
|
'ACTUALIZO EL IE CON LA POLIZA
|
|
|
|
If Not Bancos.UpdateIEPrePoliza(Fecha, NumPoliza, IDPoliza, gvr.DataKey("CvePrePoliza").ToEntero, gvr.DataKey("CveIE").ToEntero, 0) Then MsgError = "Error al actualizar la poliza" : Exit For
|
|
|
|
'----------------------------------------- Registro Movimientos de Compras
|
|
|
|
'cuando es NC, se registran en negativos todos los valores
|
|
Select Case Opcion
|
|
Case 3
|
|
TotalFuncionarios = TotalBancos
|
|
IdCuentaFuncionario = gvr.DataKey("IdCtaContPersonal").ToEntero
|
|
Case 2
|
|
TotalAnticipos = TotalBancos
|
|
IdCuentaAnticipo = gvr.DataKey("IdCtaContAnticipos").ToEntero
|
|
IdCtaContAnticiposComplementaria = gvr.DataKey("IdCtaContAnticiposComplementaria").ToEntero
|
|
Case Else
|
|
|
|
End Select
|
|
|
|
'recorro el grid de compras
|
|
Dim GvCompras As GridView = gvr.FCGridView("GvPC")
|
|
For Each gvrc As GridViewRow In GvCompras.Rows
|
|
|
|
Cargos = 0
|
|
AbonoProveedor = 0 : CargoProveedor = 0 : CargoAnticipo = 0 : AbonoAnticipo = 0
|
|
|
|
'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
|
|
|
|
ConceptoDetalle = gvrc.FCHiddenField("HdnRazonSocial").Value
|
|
CargoProveedor = 0 : CargoAnticipo = 0
|
|
TipoCambioFechaCompra = gvrc.FCHiddenField("HdnTCFechaCompra").Value.ToDecimal
|
|
|
|
CompraPagadoTotal = gvrc.FCHiddenField("HdnImportePagadoCompra").Value.ToDecimal
|
|
IVAAcreditable = gvrc.FCHiddenField("HdnIVAPagadoCompra").Value.ToDecimal
|
|
CompraPagadoRetIVA = gvrc.FCHiddenField("HdnRetIVAPagadoCompra").Value.ToDecimal
|
|
CompraPagadoRetISR = gvrc.FCHiddenField("HdnRetISRPagadoCompra").Value.ToDecimal
|
|
IVAAcreditablePago = IVAAcreditable
|
|
|
|
CompraTotal = gvrc.FCHiddenField("HdnTotal").Value.ToDecimal
|
|
CompraRetIVA = gvrc.FCHiddenField("HdnRetIVA").Value.ToDecimal
|
|
CompraRetISR = gvrc.FCHiddenField("HdnRetISR").Value.ToDecimal
|
|
IVAxAcreditar = gvrc.FCHiddenField("HdnIVA").Value.ToDecimal
|
|
|
|
|
|
IdCuentaIVAxAcreditar = gvr.DataKey("IdCuentaIVAxAcreditar").ToEntero
|
|
IdCuentaIVAAcreditable = gvr.DataKey("IdCuentaIVAAcreditable").ToEntero
|
|
IdCuentaRetIVA = gvrc.FCHiddenField("HdnIdCtaContRetIVA").Value.ToEntero
|
|
IdCuentaRetIVACirculacion = gvrc.FCHiddenField("HdnIdCtaContRetIVACirculacion").Value.ToEntero
|
|
IdCuentaRetISR = gvrc.FCHiddenField("HdnIdCtaContRetISR").Value.ToEntero
|
|
IdCuentaRetISRCirculacion = gvrc.FCHiddenField("HdnIdCtaContRetISRCirculacion").Value.ToEntero
|
|
|
|
EsContabilizada = gvrc.FCHiddenField("HdnCompraIdPoliza").Value.ToEntero > 0
|
|
'VERIFICO SI ESTA CONTABILIZADO EL PAGO, EN EL CASO DE ANTICIPOS
|
|
IEContabilizado = gvr.DataKey("IdPoliza").ToEntero > 0
|
|
IdSegNeg = gvrc.FCHiddenField("HdnIdSegNeg").Value.ToEntero
|
|
|
|
If gvrc.FCHiddenField("HdnTipoDocto").Value = "NC" Then
|
|
|
|
If UsuarioActual.Empresa.ContaContabilizacionNC = 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
|
|
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
|
|
|
|
Dim PolizaActualizada As Boolean = False
|
|
|
|
Select Case CvePlantillaPoliza
|
|
Case 10, 3, 52
|
|
IdCuentaProveedor = gvrc.FCHiddenField("HdnIdCtaContProveedores").Value.ToEntero
|
|
IdCuentaAnticipo = gvr.DataKey("IdCtaContAnticipos").ToEntero
|
|
If IdCuentaAnticipo = 0 AndAlso IdCuentaProveedor > 0 Then IdCuentaAnticipo = IdCuentaProveedor
|
|
CargoAnticipo = CompraPagadoTotal ' TotalBancos
|
|
AbonoProveedor = 0
|
|
AbonoAnticipo = CompraPagadoTotal
|
|
If TotalAnticipos > 0 And CargoAnticipo < TotalAnticipos Then TotalAnticipos -= CargoAnticipo Else TotalAnticipos = 0
|
|
'cuando el anticipo no paga toda la factura y no esta contabilizada
|
|
If AbonoAnticipo < CompraTotal AndAlso Not EsContabilizada Then AbonoProveedor = CompraTotal - AbonoAnticipo
|
|
'ejecuta la instruccion para contabilizar la prepoliza de amortizacion cuando es unica, es decir se hace al final del cheque, luego otra prepoliza con la compra y tercera la amortizacion
|
|
If Not Bancos.UpdateCompraPrePoliza(TxtFecha.Text.ToDate, NumPoliza, IDPoliza, gvrc.FCHiddenField("HdnCveCompra").Value.ToEntero, CvePlantillaPoliza) Then MsgError = "Error al actualizar compra" : Exit For Else PolizaActualizada = True
|
|
|
|
Case 2, 1
|
|
TotalProveedores = TotalBancos
|
|
AbonoProveedor = 0
|
|
'cuando el anticipo no paga toda la factura y no esta contabilizada
|
|
If TotalProveedores < CompraTotal Then AbonoProveedor = CompraTotal - CompraPagadoTotal
|
|
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, CvePlantillaPoliza) Then MsgError = "Error al actualizar compra" : Exit For Else PolizaActualizada = True
|
|
Case 8 'FyE
|
|
|
|
AbonoFuncionario = CompraPagadoTotal
|
|
|
|
'TotalFuncionarios -= AbonoFuncionario
|
|
'cuando el anticipo no paga toda la factura y no esta contabilizada
|
|
If AbonoFuncionario < CompraTotal Then AbonoFuncionario = CompraTotal
|
|
'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 3, 52
|
|
CargoAnticipo = CompraPagadoTotal
|
|
AbonoAnticipo = 0
|
|
Case 2
|
|
CargoProveedor = CompraPagadoTotal
|
|
AbonoProveedor = 0
|
|
AbonoCompraRetISR = CompraPagadoRetISR
|
|
Case 20
|
|
CargoProveedor = CompraPagadoTotal
|
|
AbonoProveedor = 0
|
|
'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 Else PolizaActualizada = True
|
|
Case 8
|
|
'TotalFuncionarios -= AbonoFuncionario
|
|
AbonoFuncionario = 0
|
|
If Not Bancos.UpdateCompraPrePoliza(TxtFecha.Text.ToDate, NumPoliza, IDPoliza, gvrc.FCHiddenField("HdnCveCompra").Value.ToEntero, 8) Then MsgError = "Error al actualizar compra" : Exit For Else PolizaActualizada = True
|
|
End Select
|
|
|
|
IVAxAcreditar = 0
|
|
CompraRetIVA = 0
|
|
CompraRetISR = 0
|
|
End If
|
|
|
|
If IEContabilizado Then
|
|
TotalBancos = 0
|
|
End If
|
|
|
|
''S I M P L I F I C A R
|
|
SimplificaIVAxAcreditar = False : SimplificaRetIVA = False
|
|
If CargoAnticipo = AbonoAnticipo Then CargoAnticipo = 0 : AbonoAnticipo = 0
|
|
|
|
If IVAAcreditable = IVAxAcreditar Then IVAxAcreditar = 0 : SimplificaIVAxAcreditar = True
|
|
|
|
If CompraRetIVA = CompraPagadoRetIVA Then CompraRetIVA = 0 : SimplificaRetIVA = True
|
|
|
|
If CompraRetISR = CompraPagadoRetISR Then CompraRetISR = 0
|
|
|
|
'simplificar fye, le quito al cargo total, el abonar al funcionario, para que tienda a cero, y no haga afectacion a fye
|
|
If TotalFuncionarios > 0 Then
|
|
If AbonoFuncionario > 0 AndAlso AbonoFuncionario <= TotalFuncionarios Then TotalFuncionarios -= AbonoFuncionario : AbonoFuncionario = 0
|
|
If AbonoFuncionario > 0 AndAlso AbonoFuncionario > TotalFuncionarios Then AbonoFuncionario -= TotalFuncionarios : TotalFuncionarios = 0
|
|
End If
|
|
|
|
'registro los movimientos en proveedores, cuando es de contado que toque
|
|
If UsuarioActual.CveEmpresa = 13 AndAlso Not EsContabilizada AndAlso Opcion = 1 AndAlso Math.Abs(CargoProveedor) <= 1 AndAlso Math.Abs(AbonoProveedor) <= 1 Then
|
|
CargoProveedor += CompraPagadoTotal
|
|
AbonoProveedor += CompraPagadoTotal
|
|
End If
|
|
|
|
'cuando es la misma cuenta e iva x acreditar y acreditable y el pago es menor a la compra, solo se registra un solo IVA, por ese se limpia el acreditable
|
|
If IdCuentaIVAxAcreditar = IdCuentaIVAAcreditable AndAlso Not EsContabilizada AndAlso TotalProveedores < CompraTotal AndAlso IVAxAcreditar > 0 Then IVAAcreditable = IVAxAcreditar : IVAxAcreditar = 0
|
|
|
|
''------------------------------- R E G I S T R O L O S M O V I M I E N T O S ------------------------------------------
|
|
IdSegNeg = 0
|
|
'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
|
|
IdSegNeg = gvrr.FCHiddenField("HdnIdSegNeg").Value.ToEntero
|
|
'ConceptoDetalle = gvr.DataKey("RazonSocial") ' gvrr.FCLiteral("LitPS").Text
|
|
Cargos += Math.Round(gvrr.FCLiteral("LitSubTotalPS").Text.ToDecimal * TipoCambioCompra, 2)
|
|
If Not Conta.AddMovimiento(IDPoliza, gvrr.FCDropDownList("DdlM").SelectedValue.ToEntero, TipoMovto, gvrr.FCLiteral("LitSubTotalPS").Text.ToDouble * TipoCambioCompra, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, IdSegNeg, 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, IDPoliza, gvrc.FCHiddenField("HdnCveCompra").Value.ToEntero) Then
|
|
'ya esta corriendo un proceso que actualiza la
|
|
'If Not PolizaActualizada Then MsgError = "Error al actualizar compra" : Exit For
|
|
End If
|
|
|
|
End If
|
|
Else
|
|
'si ya esta contabilizada, tomo el segmento de negocio del primer renglón
|
|
Dim GvDetalle As GridView = gvrc.FCGridView("GvD")
|
|
For Each gvrr As GridViewRow In GvDetalle.Rows
|
|
IdSegNeg = gvrr.FCHiddenField("HdnIdSegNeg").Value.ToEntero
|
|
Next
|
|
End If
|
|
|
|
'saco a nivel general el segmento de negocio
|
|
|
|
If IVAxAcreditar > 0 Then
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCuentaIVAxAcreditar, False, (IVAxAcreditar * TipoCambioCompra), gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, IdSegNeg, 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
|
|
|
|
Dim ttTipoCambioPago As Double = TipoCambioPago
|
|
If UsuarioActual.CveEmpresa = 13 Then ttTipoCambioPago = TipoCambioCompra
|
|
|
|
If IVAAcreditable > 0 Then 'iva Acreditable
|
|
|
|
'
|
|
If SimplificaIVAxAcreditar = False Then IVAxAcreditar = IVAAcreditable
|
|
|
|
If IdCuentaIVAxAcreditar <> IdCuentaIVAAcreditable Then
|
|
'si tienen la mqqwisma cuenta de Iva por Acreditar e IVA Acreditable, no se ingresan movimientos
|
|
|
|
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, IdSegNeg, 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, ttTipoCambioPago), ConceptoDetalle)
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCuentaIVAAcreditable, False, IVAAcreditable * ttTipoCambioPago, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoTmp, IdSegNeg, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, IVAAcreditable, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
|
|
Else
|
|
'cuando tienen la misma cuenta del iva, pero no es contabilizada, se debe de registrar el iva acreditable
|
|
If Not EsContabilizada Then
|
|
ConceptoTmp = If(CveMoneda = 2, String.Format("{0} TC {1}", ConceptoDetalle, ttTipoCambioPago), ConceptoDetalle)
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCuentaIVAAcreditable, False, IVAAcreditable * ttTipoCambioPago, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoTmp, IdSegNeg, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, IVAAcreditable, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
|
|
|
|
End If
|
|
End If
|
|
|
|
|
|
End If
|
|
'si el iva es igual el x acreditar y el acreditable, el acreditable se vuelve el por acreditar, pero aqui se toma lo pagado
|
|
If IdCuentaIVAxAcreditar = IdCuentaIVAAcreditable AndAlso Not EsContabilizada AndAlso TotalProveedores < CompraTotal AndAlso IVAxAcreditar > 0 AndAlso IVAAcreditablePago < IVAAcreditable Then
|
|
IVAAcreditable = IVAAcreditablePago
|
|
End If
|
|
|
|
'siempre se inserta en la tabla de devolucion de iva
|
|
Dim SubTotal As Double = CompraPagadoTotal * ttTipoCambioPago - IVAAcreditable * ttTipoCambioPago + CompraPagadoRetIVA * ttTipoCambioPago + CompraPagadoRetISR * ttTipoCambioPago
|
|
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
|
|
GUIDMovimiento = Conta.GUIDMovimiento
|
|
If Not Conta.AddDevolucionesIVA(IDPoliza, IdCuentaBancos, IdProveedor, If(IVAAcreditable > 0, 16, 0),
|
|
SubTotal,
|
|
IVAAcreditable * ttTipoCambioPago,
|
|
CompraPagadoRetIVA * ttTipoCambioPago,
|
|
CompraPagadoRetISR * ttTipoCambioPago,
|
|
Fecha, NumPoliza, 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
|
|
Dim ReferenciaAsociacion As String = $"<?xml version=""1.0"" encoding=""UTF-82"" standalone=""yes""?><Referencia><Documento tipo=""MovimientoPoliza"" edoPago=""0"" cadReferencia=""Movimiento de la cuenta: 10110001013035, empresa: ctGluyas, guid: {GUIDMovimiento}.""/></Referencia>"
|
|
If GUIDMovimiento <> "" AndAlso Not Conta.AddAsociacionCFDI(GUIDMovimiento, UUID, ReferenciaAsociacion) Then
|
|
MsgError = "No se pudo insertar movimientos de devoluciones de IVA" : Exit For
|
|
End If
|
|
|
|
If CompraRetIVA > 0 Then
|
|
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCuentaRetIVA, False, CompraRetIVA, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, IdSegNeg, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, CompraRetIVA, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
|
|
|
|
End If
|
|
|
|
If CompraPagadoRetIVA > 0 Then
|
|
|
|
If SimplificaRetIVA = False Then CompraRetIVA = CompraPagadoRetIVA
|
|
'no registra la retencion de iva al pagar
|
|
If UsuarioActual.CveEmpresa = 13 Then IdCuentaRetIVA = 0 : IdCuentaRetIVACirculacion = 0
|
|
|
|
|
|
ConceptoTmp = If(CveMoneda = 2, String.Format("{0} TC {1}", ConceptoDetalle, TipoCambioFechaCompra), ConceptoDetalle)
|
|
If CompraRetIVA > 0 AndAlso IdCuentaRetIVACirculacion > 0 AndAlso Not Conta.AddMovimiento(IDPoliza, IdCuentaRetIVACirculacion, False, CompraPagadoRetIVA * TipoCambioFechaCompra, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoTmp, 0, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, CompraRetIVA, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
|
|
|
|
ConceptoTmp = If(CveMoneda = 2, String.Format("{0} TC {1}", ConceptoDetalle, ttTipoCambioPago), ConceptoDetalle)
|
|
If IdCuentaRetIVA > 0 AndAlso Not Conta.AddMovimiento(IDPoliza, IdCuentaRetIVA, True, CompraPagadoRetIVA * ttTipoCambioPago, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoTmp, IdSegNeg, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, CompraPagadoRetIVA, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
|
|
|
|
|
|
' If Not Conta.AddMovimiento( IDPoliza, IdCuentaRetIVA, True, CompraPagadoRetIVA * TipoCambioCompra, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, 0, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, CompraPagadoRetIVA, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
|
|
|
|
End If
|
|
|
|
If CompraRetISR > 0 Then
|
|
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCuentaRetISR, False, CompraRetISR * TipoCambioCompra, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, IdSegNeg, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, CompraRetISR, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
|
|
|
|
End If
|
|
|
|
If CompraPagadoRetISR > 0 Then
|
|
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCuentaRetISR, True, CompraPagadoRetISR * TipoCambioCompra, gvrc.FCHiddenField("HdnSerieFolio").Value, ConceptoDetalle, IdSegNeg, Fecha, gvrc.FCHiddenField("HdnCveCompra").Value.ContaReferencia(TipoContaReferencia.Compra), If(MonExt, CompraPagadoRetISR, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
|
|
|
|
End If
|
|
|
|
If AbonoProveedor > 0 Then
|
|
|
|
Dim TmpTotal As Decimal
|
|
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 - 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, IdSegNeg, 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, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, IdSegNeg, 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
|
|
|
|
If AbonoAnticipo > 0 Then
|
|
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCuentaAnticipo, True, AbonoAnticipo, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, IdSegNeg, 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
|
|
|
|
If AbonoDeudorDiverso > 0 Then
|
|
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCuentaAnticipo, True, AbonoDeudorDiverso, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, IdSegNeg, Fecha, gvrc.FCHiddenField("HdnCveProveedor").Value.ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, AbonoDeudorDiverso, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
|
|
|
|
End If
|
|
|
|
If AbonoFuncionario > 0 Then
|
|
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCuentaFuncionario, True, AbonoFuncionario, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, IdSegNeg, 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
|
|
|
|
|
|
If CargoProveedor > 0 Then ' cuando el pago no cubre el 100%
|
|
Dim TmpTotal As Decimal
|
|
Dim TmpTotalME As Decimal = CargoProveedor
|
|
If CveMoneda = 2 Then
|
|
|
|
'registro a la cuenta complementaria del proveedor
|
|
If gvr.DataKey("IdCtaContComplementaria").ToEntero > 0 Then
|
|
TmpTotal = Math.Round(CargoProveedor * TipoCambioCompra - CargoProveedor, 2)
|
|
Else
|
|
CargoProveedor = Math.Round(CargoProveedor * TipoCambioCompra, 2)
|
|
End If
|
|
|
|
End If
|
|
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCuentaProveedor, False, CargoProveedor, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, IdSegNeg, 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, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, IdSegNeg, 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
|
|
|
|
If CargoAnticipo > 0 AndAlso TotalAnticipos = 0 Then ' cuando el pago no cubre el 100%
|
|
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCuentaAnticipo, False, CargoAnticipo, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, IdSegNeg, Fecha, gvrc.FCHiddenField("HdnCveProveedor").Value.ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, CargoProveedor, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
|
|
|
|
Dim TmpTotal As Decimal
|
|
If CveMoneda = 2 Then
|
|
|
|
'registro a la cuenta complementaria del proveedor
|
|
If gvr.DataKey("IdCtaContComplementaria").ToEntero > 0 Then
|
|
TmpTotal = Math.Round(CargoAnticipo * TipoCambioCompra - CargoAnticipo, 2)
|
|
Else
|
|
CargoAnticipo = Math.Round(CargoAnticipo * TipoCambioCompra, 2)
|
|
End If
|
|
|
|
'complementaria
|
|
If TmpTotal > 0 AndAlso Not Conta.AddMovimiento(IDPoliza, gvr.DataKey("IdCtaContComplementaria").ToEntero, TipoMovto, TmpTotal, gvrc.FCHiddenField("HdnSerieFolio").Value, gvrc.FCHiddenField("HdnSerieFolio").Value, IdSegNeg, 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
|
|
|
|
|
|
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
|
|
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, "Fluctuación IVA " & ConceptoDetalle, IdSegNeg, 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
|
|
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, IdSegNeg, 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
|
|
|
|
Next
|
|
|
|
|
|
'REGISTRO EL MOVIMIENTO DE BANCOS
|
|
|
|
If TotalBancos > 0 Or gvr.DataKey("CveEstatusIE").ToString = "2" Then ' cuando tiene importe en bancos o esta cancelado
|
|
|
|
ConceptoMov = gvr.FCTextBox("TxtDescripcion").Text
|
|
Dim ImporteMovimientoBancos As Double = gvr.DataKey("Importe").ToDouble * TipoCambioPago
|
|
If CveMoneda = 2 AndAlso IdCtaContBancosComplementaria > 0 Then
|
|
ImporteMovimientoBancos = gvr.DataKey("Importe").ToDouble
|
|
ConceptoMov = String.Format("{0} TC:{1} ${2}", ConceptoMov, TipoCambioPago, TotalBancos.FormatoNumero)
|
|
|
|
End If
|
|
|
|
|
|
|
|
Dim TmpTotalBancos As Double = Math.Round(ImporteMovimientoBancos, 2)
|
|
Dim TotalBancosME As Double = TotalBancos
|
|
If CveMoneda = 2 AndAlso IdCtaContBancosComplementaria <= 0 Then
|
|
ConceptoMov = String.Format("{0} TC:{1} ${2}", ConceptoMov, TipoCambioPago, TotalBancosME.FormatoNumero)
|
|
'si hay un tipo de cambio, va a requerir un ajuste en la conversion
|
|
'If Math.Abs(Cargos - TmpTotalBancos) > 0 Then
|
|
' TmpTotalBancos = Cargos
|
|
'End If
|
|
TotalBancos = TmpTotalBancos
|
|
|
|
End If
|
|
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCuentaBancos, True, TotalBancos, Referencia, ConceptoMov, IdSegNeg, Fecha, gvr.DataKey("CveIE").ContaReferencia(TipoContaReferencia.Banco), If(MonExt, TotalBancosME, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
|
|
|
|
|
|
'hago el movimiento de fluctuacion cambiaria BANCARIA Complementaria
|
|
If CveMoneda = 2 AndAlso IdCtaContBancosComplementaria > 0 Then
|
|
TmpTotalBancos = Math.Round(gvr.DataKey("Importe").ToDouble * TipoCambioPago - ImporteMovimientoBancos, 2)
|
|
|
|
'se ocupa verificar que no tenga una diferencia de un centavo por las conversiones de dolares a peso
|
|
Dim dtF As DataTable = Nothing
|
|
If Conta.GetPoliza(IDPoliza, -1, -1, -1, -1) Then
|
|
'hago ajuste
|
|
dtF = Conta.DtResultados
|
|
Dim tCargos, tAbonos As Decimal
|
|
tCargos = dtF.SUM("Cargo") : tAbonos = dtF.SUM("Abono")
|
|
If Math.Abs(tCargos - (tAbonos + TmpTotalBancos)) < 1 Then
|
|
TmpTotalBancos += (tCargos - (tAbonos + TmpTotalBancos))
|
|
End If
|
|
End If
|
|
dtF.Dispose()
|
|
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCtaContBancosComplementaria, True, TmpTotalBancos, Referencia, ConceptoMov, IdSegNeg, Fecha, gvr.DataKey("CveIE").ContaReferencia(TipoContaReferencia.Banco), If(MonExt, gvr.DataKey("Importe").ToDouble, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
|
|
|
|
End If
|
|
Else
|
|
'MsgError = "No Abono Bancos : " + Folio + " - " + gvr.DataKey("Importe")
|
|
Dim a As String = "No Abono Bancos : " + Folio + " - " + gvr.DataKey("Importe")
|
|
a.GuardaLog()
|
|
|
|
End If
|
|
|
|
If TotalAnticipos > 0 Then
|
|
'If Not Conta.AddMovimiento( IDPoliza, IdCuentaAnticipo, False, TotalAnticipos, Referencia, ConceptoMov, 0, Fecha, gvr.DataKey("CveIE").ContaReferencia(TipoContaReferencia.Banco), If(MonExt, TotalAnticipos, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
|
|
'FALTA LA FLUCTUACION
|
|
|
|
ConceptoMov = gvr.FCTextBox("TxtDescripcion").Text
|
|
Dim ImporteMovimientoBancos As Decimal = TotalAnticipos * TipoCambioPago
|
|
If CveMoneda = 2 AndAlso IdCtaContAnticiposComplementaria > 0 Then
|
|
ImporteMovimientoBancos = TotalAnticipos
|
|
ConceptoMov = String.Format("{0} TC:{1} ${2}", ConceptoMov, TipoCambioPago, ImporteMovimientoBancos.FormatoNumero)
|
|
End If
|
|
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCuentaAnticipo, False, TotalAnticipos, Referencia, ConceptoMov, IdSegNeg, Fecha, gvr.DataKey("CveIE").ContaReferencia(TipoContaReferencia.Banco), If(MonExt, TotalAnticipos, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
|
|
|
|
Dim TmpTotalBancos As Decimal = Math.Round(ImporteMovimientoBancos, 2)
|
|
If CveMoneda = 2 AndAlso IdCtaContAnticiposComplementaria = 0 Then
|
|
ConceptoMov = String.Format("{0} TC:{1} ${2}", ConceptoMov, TipoCambioPago, ImporteMovimientoBancos.FormatoNumero)
|
|
'si hay un tipo de cambio, va a requerir un ajuste en la conversion
|
|
If Math.Abs(Cargos - TmpTotalBancos) > 0 Then
|
|
TmpTotalBancos = Cargos
|
|
End If
|
|
|
|
End If
|
|
|
|
'hago el movimiento de fluctuacion cambiaria BANCARIA Complementaria
|
|
If CveMoneda = 2 AndAlso IdCtaContAnticiposComplementaria > 0 Then
|
|
TmpTotalBancos = Math.Round(TotalAnticipos * TipoCambioPago - ImporteMovimientoBancos, 2)
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCtaContAnticiposComplementaria, False, TmpTotalBancos, Referencia, ConceptoMov, IdSegNeg, Fecha, gvr.DataKey("CveIE").ContaReferencia(TipoContaReferencia.Banco), If(MonExt, TotalAnticipos, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
If TotalDeudoresDiversos > 0 Then
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCuentaDeudorDiverso, False, TotalDeudoresDiversos, Referencia, ConceptoMov, IdSegNeg, Fecha, gvr.DataKey("CveIE").ContaReferencia(TipoContaReferencia.Banco), If(MonExt, TotalDeudoresDiversos, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
|
|
'FALTA LA FLUCTUACION
|
|
End If
|
|
|
|
If TotalFuncionarios > 0 Then
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCuentaFuncionario, False, TotalFuncionarios, Referencia, ConceptoMov, IdSegNeg, Fecha, gvr.DataKey("CveIE").ContaReferencia(TipoContaReferencia.Banco), If(MonExt, TotalFuncionarios, 0.0)) Then MsgError = "No se pudo insertar movimiento contable" : Exit For
|
|
'FALTA LA FLUCTUACION
|
|
End If
|
|
|
|
|
|
'hago commit si es individual
|
|
|
|
If RBLOpcion.SelectedValue = "2" Then
|
|
|
|
If MsgError = "" Then
|
|
|
|
'verifico si esta cuadrada
|
|
If Conta.AjustaPoliza(IDPoliza) Then
|
|
Conta.Commit()
|
|
Bancos.Commit()
|
|
UPPDatos.Update()
|
|
|
|
PolizasGeneradas.AppendFormat(" <a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">Folio: {1}</a></center></br>", IDPoliza, NumPoliza)
|
|
Else
|
|
Conta.RollBack()
|
|
Bancos.RollBack()
|
|
MsgErrorGeneral.AppendFormat("{0}{1}", gvr.FCLiteral("LitTT").Text, gvr.FCHyperLink("HplFolio").Text)
|
|
End If
|
|
|
|
|
|
|
|
'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()
|
|
Bancos.RollBack()
|
|
MsgErrorGeneral.AppendFormat("{0}{1}", gvr.FCLiteral("LitTT").Text, gvr.FCHyperLink("HplFolio").Text)
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
Next
|
|
|
|
|
|
End If
|
|
|
|
If RBLOpcion.SelectedValue = "1" Then
|
|
If MsgError = "" Then
|
|
|
|
Conta.AjustaPoliza(IDPoliza)
|
|
Conta.Commit()
|
|
Bancos.Commit()
|
|
'Conta.RollBack()
|
|
'Bancos.RollBack()
|
|
UPPDatos.Update()
|
|
Alert(String.Format("<center>La póliza se ha generado correctamente <br/><br/> <a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">Ver Póliza</a></center>", IDPoliza))
|
|
CargaDatos()
|
|
Else
|
|
Conta.RollBack()
|
|
Bancos.RollBack()
|
|
Alert(String.Format("Ocurrio un error.1({0})", MsgError), TipoMensaje.MsgError)
|
|
End If
|
|
Else
|
|
'aqui solo puede llegar hacer rollback, porque los commit se hacen en cada iteracion
|
|
If MsgError <> "" Then
|
|
|
|
Conta.RollBack()
|
|
Bancos.RollBack()
|
|
|
|
End If
|
|
|
|
Dim Msgg As String = PolizasGeneradas.ToString
|
|
Dim TM As TipoMensaje = TipoMensaje.MsgInformacion
|
|
|
|
If MsgErrorGeneral.Length > 0 Then
|
|
Msgg = String.Format("{0}</br></br>{1}", Msgg, MsgErrorGeneral.ToString)
|
|
TM = TipoMensaje.MsgAdvertencia
|
|
End If
|
|
CargaDatos()
|
|
|
|
Alert(String.Format("</br></br></br>Se generaron las siguientes pólizas </br></br>{0}", Msgg), TM)
|
|
|
|
End If
|
|
|
|
|
|
End If
|
|
Catch ex As Exception
|
|
Conta.RollBack()
|
|
Bancos.RollBack()
|
|
Alert(ex.Message)
|
|
' Alert("Ocurrio u`n error al contabilizar")
|
|
End Try
|
|
|
|
|
|
Conta.Dispose()
|
|
Else
|
|
Alert("Seleccione factura(s) para contabilizar")
|
|
End If
|
|
End Sub
|
|
|
|
|
|
|
|
Protected Sub TxtFecha_TextChanged(sender As Object, e As EventArgs) Handles TxtFecha.TextChanged
|
|
|
|
If TbTipoCambio.Visible Then
|
|
Dim Cc As New ClsContPAQi(UsuarioActual.Empresa)
|
|
TxtTC.Text = Cc.getTipoCambio(TxtFecha.Text.ToDate).ToString
|
|
Cc.Dispose()
|
|
If TxtTC.Text.ToDouble > 0 Then
|
|
TxtTC.Enabled = False
|
|
Else
|
|
TxtTC.Text = ""
|
|
TxtTC.Enabled = True
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Protected Sub ImgTC_Click(sender As Object, e As ImageClickEventArgs) Handles ImgTC.Click
|
|
If TxtTC.Text.ToDouble <= 0 Then
|
|
Alert("Ingrese un importe")
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim Cc As New ClsContPAQi(UsuarioActual.Empresa)
|
|
If Cc.AddTipoCambio(55555, TxtFecha.Text.ToDate, TxtTC.Text.ToDouble) Then
|
|
TxtTC.Enabled = False
|
|
End If
|
|
Cc.Dispose()
|
|
|
|
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
|
|
|
|
<WebMethod()> <Script.Services.ScriptMethodAttribute()>
|
|
Public Shared Function wsCuentaNombre(ByVal contextKey As System.String) As System.String
|
|
Dim Retorno As String = ""
|
|
|
|
If contextKey.ToEntero > 0 Then
|
|
|
|
Retorno = String.Format("---{0}---", contextKey.ToDouble.Texto2Letras)
|
|
End If
|
|
|
|
Return Retorno
|
|
End Function
|
|
|
|
Protected Sub RBLOpcion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RBLOpcion.SelectedIndexChanged
|
|
|
|
PnlAgrupadora.Visible = RBLOpcion.SelectedValue = "1"
|
|
|
|
GvC.DataSource = DtDatos
|
|
GvC.DataBind()
|
|
|
|
|
|
UPPDatos.Update()
|
|
End Sub
|
|
|
|
#Region "T R A N S F E R E N C I A S"
|
|
|
|
|
|
Protected Sub GvT_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvT.RowDataBound
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
|
|
|
|
If e.Row.DBCampo("ValidoCuenta") = "1" Then
|
|
e.Row.FCCheckBox("Chk").Visible = True
|
|
e.Row.FCDropDownList("DdlPolizaTipo").DataSource = DtTiposPoliza
|
|
e.Row.FCDropDownList("DdlPolizaTipo").DataBind()
|
|
e.Row.FCDropDownList("DdlPolizaTipo").SelectedValue = "3"
|
|
End If
|
|
|
|
|
|
Dim gv As GridView = e.Row.FCGridView("GvTD")
|
|
Dim dtt As DataTable = DtDatosTransf.FiltraParametros(String.Format("TipoRenglon = 1 AND CvePrePoliza = {0} ", e.Row.DBCampo("CvePrePoliza")))
|
|
|
|
gv.DataSource = dtt
|
|
gv.DataBind()
|
|
|
|
End If
|
|
End Sub
|
|
|
|
Protected Sub GvTD_RowDataBound(ByVal Sender As Object, ByVal E As GridViewRowEventArgs)
|
|
If E.Row.RowType = DataControlRowType.DataRow Then
|
|
If E.Row.DBCampo("IdCtaContable").ToEntero = 0 Then
|
|
'falta vicularse el proveedor
|
|
E.Row.FCHyperLink("HplCuenta").ForeColor = Drawing.Color.OrangeRed
|
|
E.Row.FCHyperLink("HplCuenta").ToolTip = "Falta vincular la cuenta contable a la cuenta bancaria"
|
|
End If
|
|
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub ContabilizarTransferencias()
|
|
|
|
|
|
Dim TipoCambio As Double = 1
|
|
Dim Contador As Integer = 0
|
|
Dim ContadorME As Integer = 0
|
|
|
|
|
|
For Each gvr As GridViewRow In GvT.Rows
|
|
If gvr.FCCheckBox("Chk").Checked Then
|
|
Contador += 1
|
|
If gvr.DataKey("CveMoneda") <> "1" Then
|
|
TipoCambio = 1 : ContadorME += 1 ' TxtTC.Text.ToDouble
|
|
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 IDPoliza As Integer = 0
|
|
Dim Referencia As String
|
|
Dim ConceptoMov As String
|
|
Dim NumPoliza As Integer = 0
|
|
Dim MultNC As Integer
|
|
Dim Concepto As String
|
|
'Dim ConceptoDetalle As String
|
|
'Dim CuentaAfectable As Integer
|
|
Dim Cargos As Double
|
|
Dim MonExt As Boolean
|
|
Dim TipoPoliza As String = ""
|
|
Dim Total As Double
|
|
Dim Fecha As Date
|
|
|
|
Dim MsgError As String = ""
|
|
Dim MsgErrorGeneral As New StringBuilder
|
|
Dim PolizasGeneradas As New StringBuilder
|
|
Dim Folio As String
|
|
|
|
Try
|
|
|
|
For Each gvr As GridViewRow In GvT.Rows
|
|
If gvr.FCCheckBox("Chk").Checked Then
|
|
|
|
Folio = ""
|
|
|
|
|
|
'----------------------------------------- Registro Movimientos Bancarios
|
|
ConceptoMov = gvr.FCTextBox("TxtConcepto").Text
|
|
Referencia = ConceptoMov
|
|
'si es otra diferente al peso
|
|
If gvr.DataKey("CveMoneda") <> "1" Then
|
|
TipoCambio = TxtTC.Text.ToDouble
|
|
MonExt = True
|
|
Concepto = String.Format("{0} TC:{1} ${2}", ConceptoMov, TxtTC.Text, gvr.DataKey("Importe").ToDouble.FormatoNumero)
|
|
Else
|
|
TipoCambio = 1
|
|
MonExt = False
|
|
Concepto = ConceptoMov
|
|
End If
|
|
|
|
Cargos = 0
|
|
Total = gvr.DataKey("Importe").ToDouble
|
|
|
|
Select Case UsuarioActual.CveEmpresa
|
|
Case 13
|
|
TipoPoliza = "TRAN"
|
|
Case 66
|
|
Folio = "-1"
|
|
TipoPoliza = "1-000"
|
|
End Select
|
|
|
|
|
|
If RBLOpcion.SelectedValue = "2" Then
|
|
'inserto una poliza por pago
|
|
Conta = New ClsContPAQi(UsuarioActual.Empresa)
|
|
Conta.IniciaTransacSQL()
|
|
PrePolizas = New ClsContabilidad
|
|
PrePolizas.IniciaTransacSQL()
|
|
MsgError = ""
|
|
Fecha = gvr.FCTextBox("TxtFecha").Text.ToDate
|
|
IDPoliza = Conta.AddPoliza(gvr.FCDropDownList("DdlPolizaTipo").SelectedValue.ToEntero, gvr.FCTextBox("TxtConcepto").Text, Total, Total, UsuarioActual.CveUsuario, Fecha, Folio, TipoPoliza)
|
|
NumPoliza = Conta.Folio
|
|
'Else
|
|
' IDPoliza = -1
|
|
End If
|
|
|
|
|
|
' ------------ INSERTO LOS MOVIMIENTOS
|
|
|
|
Dim GvD As GridView = gvr.FCGridView("GvTD")
|
|
|
|
For Each gvr2 As GridViewRow In GvD.Rows
|
|
|
|
If Not Conta.AddMovimiento(IDPoliza, gvr2.FCHiddenField("HdnIdCta").Value.ToEntero, gvr2.FCHiddenField("HdnTipoMovto").Value = "True", Total, "", ConceptoMov, 0, Fecha, gvr2.FCHiddenField("HdnCveIE").Value.ContaReferencia(TipoContaReferencia.Banco).ToString, If(MonExt, Total, 0.0) * MultNC) Then
|
|
MsgError = "No se pudo insertar movimiento contable"
|
|
Exit For
|
|
End If
|
|
|
|
Next
|
|
|
|
|
|
If MsgError = "" Then
|
|
'movimiento para que no cause IVA en las transferencias
|
|
Conta.AddCausacionesIVA(IDPoliza, 0, 0, 0, 0, 0, 0, True)
|
|
|
|
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
|
|
|
|
#End Region
|
|
|
|
|
|
#Region "F U N C I O N A R I O S Y E M P L E A D O S"
|
|
|
|
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 tDtCompras As DataTable = DtDatosFyECompras.FiltraParametros(String.Format("CveIE = {0} AND CvePS = -1 ", e.Row.DBCampo("CveIE")))
|
|
|
|
gvC.DataSource = tDtCompras
|
|
gvC.DataBind()
|
|
|
|
If tDtCompras IsNot Nothing AndAlso tDtCompras.Rows.Count > 0 Then e.Row.FCTextBox("TxtDescripcion").Text = String.Format("Reembolso:{0}", e.Row.DBCampo("RazonSocial"))
|
|
|
|
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 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
|
|
|
|
#End Region
|
|
|
|
#Region "A N T I C I P O S"
|
|
|
|
|
|
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 gvPC As GridView = e.Row.FCGridView("GvPC")
|
|
Dim tDtCompras As DataTable = If(e.Row.DBCampo("CveIE").ToEntero > 0, DtDatosAnticiposCompras.FiltraParametros(String.Format("CveIE = {0} AND CvePS = -1 ", e.Row.DBCampo("CveIE"))), Nothing)
|
|
|
|
gvPC.DataSource = tDtCompras
|
|
gvPC.DataBind()
|
|
Dim Simplificar As Boolean = False
|
|
|
|
|
|
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 Then
|
|
'
|
|
If tDtCompras.MIN("Valido") = "0" Then
|
|
e.Row.FCCheckBox("Chk").Visible = False
|
|
|
|
End If
|
|
|
|
End If
|
|
Else
|
|
'sino tiene cuenta
|
|
'si la compra es mayor o igual al anticipo, se simplifica el movimiento a anticipos
|
|
If e.Row.DBCampo("IdCtaContBancos").ToEntero > 0 AndAlso tDtCompras IsNot Nothing AndAlso tDtCompras.Rows.Count > 0 AndAlso tDtCompras.SUM("Total") >= e.Row.DBCampo("Importe") AndAlso e.Row.DBCampo("IdCtaContComplementaria").ToEntero > 0 Then
|
|
Simplificar = True
|
|
e.Row.FCCheckBox("Chk").Visible = True
|
|
End If
|
|
End If
|
|
|
|
|
|
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("CveMoneda").ToEntero = 1 AndAlso e.Row.DBCampo("IdCtaContAnticipos").ToEntero = 0 AndAlso Simplificar = False Then
|
|
'falta vicularse la cuenta
|
|
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("CveMoneda").ToEntero = 2 AndAlso e.Row.DBCampo("IdCtaContAnticiposComplementaria").ToEntero = 0 AndAlso Simplificar = False Then
|
|
' 'falta vicularse la cuenta
|
|
' e.Row.FCHyperLink("HplP").ForeColor = Drawing.Color.OrangeRed
|
|
' e.Row.FCHyperLink("HplP").ToolTip = "Falta vincular la cuenta contable complementaria"
|
|
|
|
'End If
|
|
|
|
End If
|
|
End Sub
|
|
|
|
'Private Sub ContabilizarAnticipos()
|
|
|
|
|
|
' Dim TipoCambio As Double
|
|
' Dim Contador As Integer = 0
|
|
' Dim ContadorME As Integer = 0
|
|
|
|
|
|
' For Each gvr As GridViewRow In GvAnt.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 IDPoliza As Integer = 0
|
|
' Dim Referencia As String
|
|
' Dim ConceptoMov 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 MsgError As String = ""
|
|
' Dim MsgErrorGeneral As New StringBuilder
|
|
' Dim PolizasGeneradas As New StringBuilder
|
|
' Dim Folio As String
|
|
|
|
' Try
|
|
|
|
' For Each gvr As GridViewRow In GvAnt.Rows
|
|
' If gvr.FCCheckBox("Chk").Checked Then
|
|
|
|
' Folio = ""
|
|
|
|
' '----------------------------------------- Registro Movimientos Bancarios
|
|
' ConceptoMov = gvr.FCTextBox("TxtConcepto").Text
|
|
' Referencia = ConceptoMov
|
|
' 'si es otra diferente al peso
|
|
' If gvr.DataKey("CveMoneda") <> "1" Then
|
|
' TipoCambio = TxtTC.Text.ToDouble
|
|
' MonExt = True
|
|
' Concepto = String.Format("{0} TC:{1} ${2}", ConceptoMov, TxtTC.Text, gvr.DataKey("Importe").ToDouble.FormatoNumero)
|
|
' Else
|
|
' TipoCambio = 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
|
|
' PrePolizas.IniciaTransacSQL()
|
|
' MsgError = ""
|
|
' Fecha = gvr.FCTextBox("TxtFecha").Text.ToDate
|
|
' IDPoliza = Conta.AddPoliza( gvr.FCDropDownList("DdlPolizaTipo").SelectedValue.ToEntero, gvr.FCTextBox("TxtConcepto").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
|
|
|
|
|
|
' If Not Conta.AddMovimiento( IDPoliza, gvr.DataKey("IdCtaContAnticipos").ToEntero, TipoMovto, Total, "", 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
|
|
|
|
' If Not Conta.AddMovimiento( IDPoliza, gvr.DataKey("IdCtaContable").ToEntero, Not TipoMovto, Total, "", 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
|
|
|
|
|
|
' 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/Poliza.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
|
|
|
|
|
|
#End Region
|
|
|
|
|
|
|
|
End Class
|