648 lines
30 KiB
VB.net
648 lines
30 KiB
VB.net
|
|
Imports System.Data
|
|
Imports Extensiones
|
|
Imports System.Web.Services
|
|
Imports System.Xml
|
|
|
|
Partial Class Contabilidad_DiarioCompras
|
|
Inherits ClsPaginas
|
|
|
|
|
|
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 DtDatosFyE As DataTable
|
|
Get
|
|
Return CType(ViewState("DtDatosFyE"), DataTable)
|
|
End Get
|
|
Set(value As DataTable)
|
|
ViewState("DtDatosFyE") = value
|
|
End Set
|
|
End Property
|
|
|
|
|
|
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()
|
|
|
|
txtFechaI.Text = Now.AddMonths(0).FirstDayOfMonth.ToShortDateString
|
|
txtFechaF.Text = Now.ToShortDateString
|
|
|
|
If UsuarioActual.Sesion("DiarioCompras-CveProveedor").ToString <> "" Then DdlProveedores.SelectedValue = UsuarioActual.Sesion("DiarioCompras-CveProveedor").ToString.Trim
|
|
If UsuarioActual.Sesion("DiarioCompras-FI").ToString <> "" Then txtFechaI.Text = UsuarioActual.Sesion("DiarioCompras-FI").ToString.Trim
|
|
If UsuarioActual.Sesion("DiarioCompras-FF").ToString <> "" Then txtFechaF.Text = UsuarioActual.Sesion("DiarioCompras-FF").ToString.Trim
|
|
|
|
|
|
CargaDatos()
|
|
|
|
'Dim wsTC As New wsTipoCambio.DgieWSPortClient
|
|
|
|
'Dim StrTC As String = wsTC.tiposDeCambioBanxico
|
|
'Dim XMLDoc As New XmlDocument
|
|
'Dim namespaces As New XmlNamespaceManager(XMLDoc.NameTable)
|
|
|
|
'XMLDoc.Load(StrTC)
|
|
'Dim nodo As XmlNode = XMLDoc.DocumentElement
|
|
'XMLDoc.SelectSingleNode(String.Format("//{0}:DataSet", "bm"), namespaces)
|
|
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub CargaDatos()
|
|
|
|
Dim Conta As New ClsContabilidad
|
|
If Conta.GetDiarioCompras(DdlProveedores.SelectedValue.ToEntero, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, 1, UsuarioActual.CveEmpresa) Then
|
|
|
|
DtDatos = Conta.DtResultados
|
|
|
|
|
|
'Conta.GetConta_TiposPoliza()
|
|
|
|
Dim Cc As New ClsContPAQi(UsuarioActual.Empresa)
|
|
If Cc.GetTiposPoliza(-1, "-1") Then
|
|
DdlPolizaTipo.DataSource = Cc.DtResultados
|
|
DdlPolizaTipo.DataBind()
|
|
End If
|
|
'busco si se ocupa el tipo de cambio
|
|
|
|
If UsuarioActual.CveEmpresa = 66 Then
|
|
DdlPolizaTipo.SelectedValue = "3"
|
|
|
|
End If
|
|
|
|
If DtDatos.FiltraParametros("CveMoneda <> 1").Rows.Count > 0 Then
|
|
'hay movimientos que son diferentes a pesos
|
|
TbTipoCambio.Visible = True
|
|
TxtTC.Text = Cc.getTipoCambio(Today).ToString
|
|
TxtFecha.AutoPostBack = True
|
|
If TxtTC.Text.ToDouble > 0 Then TxtTC.Enabled = False Else TxtTC.Text = ""
|
|
|
|
|
|
End If
|
|
|
|
Cc.Dispose()
|
|
|
|
|
|
End If
|
|
|
|
If Conta.GetDiarioCompras(DdlProveedores.SelectedValue.ToEntero, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, 2, UsuarioActual.CveEmpresa) Then
|
|
|
|
DtDatosFyE = Conta.DtResultados
|
|
|
|
|
|
End If
|
|
|
|
|
|
Conta.Dispose()
|
|
|
|
|
|
|
|
CargaGrid()
|
|
End Sub
|
|
|
|
|
|
Private Sub CargaGrid()
|
|
'hago un filtro, primero muestro lo encabezados de las facturas y dentro del grid filtro los detalles de cada factura
|
|
|
|
If DtDatos IsNot Nothing Then
|
|
Dim dtt As DataTable = DtDatos.FiltraParametros("CvePS = -1")
|
|
|
|
LblTotComp.Text = String.Format("{0} Registros", DtDatos.COUNT("CvePS", "CvePS = -1"))
|
|
Gv.DataSource = dtt
|
|
Gv.DataBind()
|
|
|
|
'hago un filtro, primero muestro lo encabezados de las facturas y dentro del grid filtro los detalles de cada factura
|
|
dtt = DtDatosFyE.FiltraParametros("CvePS = -1")
|
|
LblTotFyE.Text = String.Format("{0} Registros", DtDatosFyE.COUNT("CvePS", "CvePS = -1"))
|
|
GvFyE.DataSource = dtt
|
|
GvFyE.DataBind()
|
|
End If
|
|
|
|
|
|
|
|
UPPDatos.Update()
|
|
End Sub
|
|
|
|
Protected Sub Gv_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles Gv.RowDataBound, GvFyE.RowDataBound
|
|
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
Dim Grid As String = DirectCast(sender, GridView).ID
|
|
|
|
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("CveMoneda") = "2" AndAlso e.Row.DBCampo("IdCtaContComplementaria").ToEntero = 0 Then
|
|
' 'falta vicularse al proveedor la cuenta contable
|
|
' e.Row.FCHyperLink("HplProv").ForeColor = Drawing.Color.OrangeRed
|
|
' e.Row.FCHyperLink("HplProv").ToolTip = "Falta vincular la cuenta contable complementaria"
|
|
'End If
|
|
|
|
|
|
If e.Row.DBCampo("IdCuentaIVAxAcreditar").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("RetIVA").ToDouble > 0 AndAlso e.Row.DBCampo("IdCtaContRetIVA").ToEntero = 0 Then
|
|
e.Row.FCLabel("LblRetIVA").ForeColor = Drawing.Color.OrangeRed
|
|
e.Row.FCLabel("LblRetIVA").ToolTip = "Falta vincular la cuenta contable a la Retencion de IVA"
|
|
End If
|
|
|
|
|
|
|
|
'validaci[on para que sea active el chkbox
|
|
If e.Row.DBCampo("FacturasSinCuenta") = "0" AndAlso
|
|
(e.Row.DBCampo("IVA").ToDouble <= 0 OrElse (e.Row.DBCampo("IVA").ToDouble > 0 AndAlso e.Row.DBCampo("IdCuentaIVAxAcreditar").ToEntero > 0)) AndAlso
|
|
(e.Row.DBCampo("RetIVA").ToDouble <= 0 OrElse (e.Row.DBCampo("RetIVA").ToDouble > 0 AndAlso e.Row.DBCampo("IdCtaContRetIVA").ToEntero > 0)) AndAlso
|
|
(e.Row.DBCampo("RetISR").ToDouble <= 0 OrElse (e.Row.DBCampo("RetISR").ToDouble > 0 AndAlso e.Row.DBCampo("IdCtaContRetISR").ToEntero > 0)) Then
|
|
'si la factura fue a credito, que no tiene cveie, checo si está cargada la cuenta contable del proveedor para afectarla
|
|
If e.Row.DBCampo("Contado").ToEntero = 0 Then
|
|
If e.Row.DBCampo("IdCtaContProveedores").ToEntero > 0 Then
|
|
e.Row.FCCheckBox("Chk").Visible = True
|
|
|
|
End If
|
|
Else
|
|
If e.Row.DBCampo("IdCtaContBancos").ToEntero > 0 Then
|
|
e.Row.FCCheckBox("Chk").Visible = True
|
|
Else
|
|
|
|
If Grid = "GvFyE" Then
|
|
e.Row.FCHyperLink("HplPer").ToolTip = String.Format("No se tiene vinculada la cuenta del personal ({0})", e.Row.DBCampo("Personal"))
|
|
e.Row.FCHyperLink("HplPer").ForeColor = Drawing.Color.OrangeRed
|
|
Else
|
|
e.Row.FCLabel("LblTotal").ForeColor = Drawing.Color.OrangeRed
|
|
e.Row.FCLabel("LblTotal").ToolTip = "No se tiene vinculada la cuenta bancaria"
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
'si fue la compra en un solo pago, no credito
|
|
If e.Row.DBCampo("Contado").ToEntero > 0 AndAlso 1 = 2 Then
|
|
e.Row.FCCheckBox("Chk").Visible = True
|
|
End If
|
|
|
|
|
|
End If
|
|
|
|
If e.Row.DBCampo("CveMoneda") = "2" AndAlso e.Row.DBCampo("TC").ToDecimal = 0 Then
|
|
' 'falta vicularse al proveedor la cuenta contable
|
|
e.Row.FCLabel("LblTC").ForeColor = Drawing.Color.OrangeRed
|
|
e.Row.FCLabel("LblTC").Text = "S/TC"
|
|
e.Row.FCCheckBox("Chk").Visible = False
|
|
End If
|
|
|
|
|
|
If Math.Abs(e.Row.DBCampo("SubTotal").ToDouble - e.Row.DBCampo("Descuentos").ToDouble - e.Row.DBCampo("SubTotalPS").ToDouble) > 0.01 Then
|
|
e.Row.FCLabel("LblSubTotal").ForeColor = Drawing.Color.Red
|
|
e.Row.FCLabel("LblSubTotal").ToolTip = String.Format("Factura: {0} - Productos:{1}", e.Row.DBCampo("SubTotal").ToDouble.FormatoNumero, e.Row.DBCampo("SubTotalPS").ToDouble.FormatoNumero)
|
|
e.Row.FCCheckBox("Chk").Visible = False
|
|
End If
|
|
|
|
Dim gv As GridView = e.Row.FCGridView("GvD")
|
|
|
|
|
|
Dim dttf As DataTable
|
|
|
|
If Grid = "Gv" Then
|
|
dttf = DtDatos
|
|
Else
|
|
dttf = DtDatosFyE
|
|
End If
|
|
|
|
Dim dtt As DataTable = dttf.FiltraParametros(String.Format("CveCompra = {0} AND CvePS <> -1", e.Row.DBCampo("CveCompra")))
|
|
|
|
gv.DataSource = dtt
|
|
gv.DataBind()
|
|
|
|
|
|
End If
|
|
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 GvDetalle_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 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
|
|
|
|
Dim Total As Decimal = 0 '(From gvr As GridViewRow In Gv.Rows Where gvr.FCCheckBox("Chk").Checked).Sum(Function(gvr) gvr.DataKey("Total").ToDouble + gvr.DataKey("RetIVA").ToDouble + gvr.DataKey("RetISR").ToDouble)
|
|
Dim MultNC As Integer
|
|
Dim TipoCambio As Decimal
|
|
Dim Contador As Integer = 0
|
|
Dim ContadorME As Integer = 0
|
|
Dim EsPersonal As Boolean = False
|
|
|
|
Dim GvT As GridView = Gv
|
|
|
|
If Tabs.ActiveTabIndex = 1 Then
|
|
GvT = GvFyE
|
|
EsPersonal = True
|
|
End If
|
|
|
|
|
|
For Each gvr As GridViewRow In GvT.Rows
|
|
If gvr.FCCheckBox("Chk").Checked Then
|
|
Contador += 1
|
|
If gvr.DataKey("CveMoneda") <> "1" AndAlso gvr.DataKey("IdCtaContComplementaria").ToEntero > 0 Then
|
|
TipoCambio = TxtTC.Text.ToDouble : ContadorME += 1
|
|
Else : TipoCambio = 1
|
|
End If
|
|
If gvr.DataKey("TipoDocto") = "NC" Then MultNC = -1 Else MultNC = 1
|
|
Total += (gvr.DataKey("Total").ToDouble + gvr.DataKey("RetIVA").ToDecimal + gvr.DataKey("RetISR").ToDecimal) * TipoCambio * MultNC
|
|
End If
|
|
|
|
Next
|
|
|
|
If ContadorME > 0 AndAlso TxtTC.Text.ToDouble <= 0 Then
|
|
Alert("Ingrese un tipo de cambio.", TipoMensaje.MsgAdvertencia)
|
|
Exit Sub
|
|
End If
|
|
|
|
|
|
Dim TipoMovto As Boolean = False
|
|
If Contador > 0 Then
|
|
Dim Conta As ClsContPAQi = Nothing
|
|
Dim Compra As ClsCompras = Nothing
|
|
Dim IDPoliza As Integer = 0
|
|
Dim CuentaAfectable As Integer
|
|
Dim NumPoliza As String
|
|
Dim Concepto As String
|
|
Dim ConceptoDetalle As String
|
|
Dim Cargos As Decimal
|
|
Dim TipoPoliza As String = ""
|
|
|
|
If UsuarioActual.CveEmpresa = 66 Then
|
|
TipoPoliza = "1-000"
|
|
End If
|
|
|
|
Dim MonExt As Boolean
|
|
|
|
Dim MsgError As String = ""
|
|
Try
|
|
|
|
|
|
If UsuarioActual.Empresa.UsaContabilidad Then
|
|
Conta = New ClsContPAQi(UsuarioActual.Empresa)
|
|
Compra = New ClsCompras()
|
|
Conta.IniciaTransacSQL()
|
|
Compra.IniciaTransacSQL()
|
|
IDPoliza = Conta.AddPoliza(DdlPolizaTipo.SelectedValue.ToEntero, TxtDescripcion.Text, Total, Total, UsuarioActual.CveUsuario, TxtFecha.Text.ToDate, pTipo:=TipoPoliza)
|
|
NumPoliza = Conta.DtResultados.FiltroPrimero("")("Folio").ToString
|
|
'inserto la póliza
|
|
If IDPoliza = 0 Then
|
|
MsgError = "No se pudo insertar la póliza contable."
|
|
Else
|
|
For Each gvr As GridViewRow In GvT.Rows
|
|
If gvr.FCCheckBox("Chk").Checked Then
|
|
|
|
'si es otra diferente al peso y sino tiene cuenta complementaria, entonces hace el calculo por el tipo de cambio
|
|
If gvr.DataKey("CveMoneda") <> "1" Then
|
|
TipoCambio = gvr.DataKey("TC").ToDecimal 'TxtTC.Text.ToDouble
|
|
MonExt = True
|
|
Else
|
|
TipoCambio = 1
|
|
MonExt = False
|
|
End If
|
|
|
|
Cargos = 0
|
|
|
|
If gvr.DataKey("TipoDocto") = "NC" Then
|
|
|
|
If UsuarioActual.Empresa.ContaContabilizacionNC <> 0 Then
|
|
'cuando el movimiento de las nc, sea <> cero, quiero decir que solo convertimos a negativos los valores
|
|
MultNC = -1
|
|
Else
|
|
'cuando sea 0. los cargos se convierten en abonos y viceversa, pero los importes son positivos
|
|
MultNC = 1
|
|
TipoMovto = True
|
|
End If
|
|
|
|
Else
|
|
MultNC = 1
|
|
TipoMovto = False
|
|
End If 'cuando es NC, se registran en negativos todos los valores
|
|
|
|
'Registro los movimientos de la compra
|
|
Dim GvDetalle As GridView = gvr.FCGridView("GVD")
|
|
|
|
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.ToDecimal * TipoCambio * MultNC, 2)
|
|
If Not Conta.AddMovimiento(IDPoliza, gvrr.FCDropDownList("DdlM").SelectedValue.ToEntero, TipoMovto, Math.Round(gvrr.FCLiteral("LitSubTotalPS").Text.ToDecimal * TipoCambio * MultNC, 2), gvr.DataKey("SerieFolio"), ConceptoDetalle, 0, TxtFecha.Text.ToDate, gvr.DataKey("CveCompra").ContaReferencia(TipoContaReferencia.Compra), If(MonExt, gvrr.FCLiteral("LitSubTotalPS").Text.ToDouble, 0.0) * MultNC) Then
|
|
MsgError = "No se pudo insertar movimiento contable"
|
|
Exit For
|
|
End If
|
|
|
|
|
|
Next
|
|
|
|
End If
|
|
|
|
Dim IdCtaContProveedoresMoneda As Integer = gvr.DataKey("IdCtaContProveedores").ToEntero
|
|
|
|
If MsgError = "" Then
|
|
|
|
|
|
If gvr.DataKey("IVA").ToDecimal > 0 Then
|
|
'INSERTO EL IVA DE LA FACTURA
|
|
ConceptoDetalle = gvr.DataKey("RazonSocial")
|
|
Dim CveIVA As Integer = gvr.DataKey("IdCuentaIVAxAcreditar").ToEntero
|
|
If gvr.DataKey("Contado").ToEntero = 1 Then
|
|
CveIVA = gvr.DataKey("IdCuentaIVAAcreditable").ToEntero
|
|
End If
|
|
Cargos += Math.Round(gvr.DataKey("IVA").ToDecimal * TipoCambio * MultNC, 2)
|
|
If Not Conta.AddMovimiento(IDPoliza, CveIVA, TipoMovto, Math.Round(gvr.DataKey("IVA").ToDecimal * TipoCambio * MultNC, 2), gvr.DataKey("SerieFolio"), ConceptoDetalle, 0, TxtFecha.Text.ToDate, gvr.DataKey("CveCompra").ContaReferencia(TipoContaReferencia.Compra), If(MonExt, gvr.DataKey("IVA").ToDouble, 0.0) * MultNC) Then
|
|
MsgError = "No se pudo insertar movimiento contable"
|
|
Exit For
|
|
End If
|
|
|
|
End If
|
|
|
|
If MsgError <> "" Then Exit For
|
|
|
|
If gvr.DataKey("RetIVA").ToDecimal > 0 Then
|
|
'INSERTO LA RETENCION DE IVA DE LA FACTURA
|
|
ConceptoDetalle = gvr.DataKey("RazonSocial")
|
|
If Not Conta.AddMovimiento(IDPoliza, gvr.DataKey("IdCtaContRetIVA").ToEntero, Not TipoMovto, gvr.DataKey("RetIVA").ToDouble * TipoCambio * MultNC, gvr.DataKey("SerieFolio"), ConceptoDetalle, 0, TxtFecha.Text.ToDate, gvr.DataKey("CveCompra").ContaReferencia(TipoContaReferencia.Compra), If(MonExt, gvr.DataKey("RetIVA").ToDouble, 0.0) * MultNC) Then
|
|
MsgError = "No se pudo insertar movimiento contable"
|
|
Exit For
|
|
End If
|
|
|
|
End If
|
|
|
|
If MsgError <> "" Then Exit For
|
|
|
|
If gvr.DataKey("RetISR").ToDouble > 0 Then
|
|
'INSERTO LA RETENCION DE ISR DE LA FACTURA
|
|
ConceptoDetalle = gvr.DataKey("RazonSocial")
|
|
If Not Conta.AddMovimiento(IDPoliza, gvr.DataKey("IdCtaContRetISR").ToEntero, Not TipoMovto, gvr.DataKey("RetISR").ToDouble * TipoCambio * MultNC, gvr.DataKey("SerieFolio"), ConceptoDetalle, 0, TxtFecha.Text.ToDate, gvr.DataKey("CveCompra").ContaReferencia(TipoContaReferencia.Compra), If(MonExt, gvr.DataKey("RetISR").ToDouble, 0.0) * MultNC) Then
|
|
MsgError = "No se pudo insertar movimiento contable"
|
|
Exit For
|
|
End If
|
|
|
|
End If
|
|
|
|
If MsgError <> "" Then Exit For
|
|
|
|
Dim ImporteMovimiento As Double = gvr.DataKey("Total").ToDouble * TipoCambio * MultNC
|
|
If gvr.DataKey("CveMoneda") = "2" AndAlso gvr.DataKey("IdCtaContComplementaria").ToEntero > 0 Then
|
|
ImporteMovimiento = gvr.DataKey("Total").ToDouble * MultNC
|
|
End If
|
|
|
|
|
|
|
|
'VERIFICO SI LA CUENTA ES DE CREDITO O NO
|
|
If gvr.DataKey("Contado").ToEntero = 0 Then
|
|
CuentaAfectable = IdCtaContProveedoresMoneda
|
|
Else
|
|
CuentaAfectable = gvr.DataKey("IdCtaContBancos").ToEntero
|
|
|
|
|
|
' SI LA EMPRESA TIENE HABILITADA LA OPCION, PARA INCLUIR LOS MOVIMIENTOS DEL PROVEEDOR EN COMPRAS DE CONTADO, Y ESTOS DOS MOIVMIENTOS SOLOS SE SALDAN
|
|
If CBool(gvr.DataKey("Conta_AsientoContableComprasContado")) And Not EsPersonal Then
|
|
|
|
'INSERTO LOS MOVIMIENTOS DEL PROVEEDOR
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCtaContProveedoresMoneda, TipoMovto, ImporteMovimiento, gvr.DataKey("SerieFolio"), gvr.DataKey("SerieFolio"), 0, TxtFecha.Text.ToDate, gvr.DataKey("CveProveedor").ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, gvr.DataKey("Total").ToDouble, 0.0) * MultNC) Then
|
|
MsgError = "No se pudo insertar movimiento contable"
|
|
Exit For
|
|
End If
|
|
|
|
If Not Conta.AddMovimiento(IDPoliza, IdCtaContProveedoresMoneda, Not TipoMovto, ImporteMovimiento, gvr.DataKey("SerieFolio"), gvr.DataKey("SerieFolio"), 0, TxtFecha.Text.ToDate, gvr.DataKey("CveProveedor").ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, gvr.DataKey("Total").ToDouble, 0.0) * MultNC) Then
|
|
MsgError = "No se pudo insertar movimiento contable"
|
|
Exit For
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
Concepto = gvr.DataKey("SerieFolio")
|
|
|
|
Dim TmpTotal As Double = Math.Round(ImporteMovimiento, 2)
|
|
If gvr.DataKey("CveMoneda") <> "1" AndAlso gvr.DataKey("IdCtaContComplementaria").ToEntero = 0 Then
|
|
Concepto = String.Format("{0} TC:{1} ${2}", gvr.DataKey("SerieFolio"), TipoCambio, gvr.DataKey("Total").ToDouble.FormatoNumero)
|
|
'si hay un tipo de cambio, va a requerir un ajuste en la conversion
|
|
If Math.Abs(Cargos - TmpTotal) > 0 Then
|
|
TmpTotal = Cargos
|
|
End If
|
|
|
|
End If
|
|
|
|
'INSERTO EN PROVEEDORES O BANCOS
|
|
If Not Conta.AddMovimiento(IDPoliza, CuentaAfectable, Not TipoMovto, TmpTotal, gvr.DataKey("SerieFolio"), Concepto, 0, TxtFecha.Text.ToDate, gvr.DataKey("CveProveedor").ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, gvr.DataKey("Total").ToDouble, 0.0) * MultNC) 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 Dif As Decimal = Math.Round(gvr.DataKey("TC") * gvr.DataKey("Total").ToDecimal, 2)
|
|
Concepto = String.Format("{0} TC:{1} ${2}", gvr.DataKey("SerieFolio"), TipoCambio, gvr.DataKey("Total").ToDouble.FormatoNumero)
|
|
''si hay un tipo de cambio, va a requerir un ajuste en la conversion
|
|
If Math.Abs(Math.Abs(Cargos) - Dif) > 0 AndAlso Math.Abs(Math.Abs(Cargos) - Dif) <= 0.02 Then
|
|
Dif = Math.Abs(Cargos)
|
|
End If
|
|
Dif = (Dif - (gvr.DataKey("Total").ToDecimal)) * MultNC
|
|
|
|
If Not Conta.AddMovimiento(IDPoliza, gvr.DataKey("IdCtaContComplementaria").ToEntero, Not TipoMovto, Dif, gvr.DataKey("SerieFolio"), Concepto, 0, TxtFecha.Text.ToDate, gvr.DataKey("CveProveedor").ContaReferencia(TipoContaReferencia.Proveedor), 0) Then ' no lleva moneda extranjera
|
|
MsgError = "No se pudo insertar movimiento contable"
|
|
Exit For
|
|
End If
|
|
|
|
|
|
End If
|
|
|
|
If MsgError <> "" Then
|
|
Exit For
|
|
End If
|
|
|
|
'ACTUALIZO LA COMPRA CON LA POLIZA
|
|
|
|
If Not Compra.UpdateCompraPrePoliza(TxtFecha.Text.ToDate, NumPoliza, IDPoliza, 0, gvr.DataKey("CveCompra").ToEntero, -1) Then
|
|
MsgError = "Error al actualizar compra"
|
|
Exit For
|
|
End If
|
|
|
|
|
|
Else
|
|
Exit For
|
|
End If
|
|
|
|
|
|
'If Not Conta.AddMovimiento( IDPoliza, gvr.fcdrop.ToEntero, TipoMovto, Importe, gvr.FCLiteral("LtlReferencia").Text, gvr.FCLiteral("LtlConcepto").Text, 0, TxtFechaDocumento.Text.ToDate, "", "") Then
|
|
' MsgError = "No se pudo insertar movimiento contable"
|
|
' 'Exit For
|
|
'End If
|
|
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
If MsgError = "" Then
|
|
Conta.AjustaPoliza(IDPoliza)
|
|
Conta.Commit()
|
|
Compra.Commit()
|
|
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), TipoMensaje.MsgInformacion)
|
|
CargaDatos()
|
|
Else
|
|
Conta.RollBack()
|
|
Compra.RollBack()
|
|
End If
|
|
|
|
End If
|
|
Catch ex As Exception
|
|
Conta.RollBack()
|
|
Compra.RollBack()
|
|
Alert("Ocurrio un error al contabilizar", TipoMensaje.MsgError)
|
|
GuardaLog(ex.ToString)
|
|
End Try
|
|
|
|
|
|
Conta.Dispose()
|
|
Else
|
|
Alert("Seleccione factura(s) para contabilizar", TipoMensaje.MsgAdvertencia)
|
|
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 = ""
|
|
'busco en la tabla de nosotros
|
|
Dim Gral As New ClsGenerales
|
|
|
|
If Gral.GetTipoCambio(-1, TxtFecha.Text.ToDate) Then
|
|
Dim dr As DataRow = Gral.DtResultados.FiltroPrimero("")
|
|
If dr IsNot Nothing Then
|
|
TxtTC.Text = dr("TipoCambio").ToString
|
|
End If
|
|
End If
|
|
|
|
Gral.Dispose()
|
|
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", TipoMensaje.MsgAdvertencia)
|
|
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("DiarioCompras-CveProveedor") = DdlProveedores.SelectedValue
|
|
UsuarioActual.Sesion("DiarioCompras-FI") = txtFechaI.Text
|
|
UsuarioActual.Sesion("DiarioCompras-FF") = txtFechaF.Text
|
|
If DdlProveedores.SelectedValue.ToEntero > 0 Then TxtDescripcion.Text = DdlProveedores.SelectedItem.Text Else TxtDescripcion.Text = ""
|
|
UPPPoliza.Update()
|
|
CargaDatos()
|
|
UPPDatos.Update()
|
|
End Sub
|
|
|
|
Protected Sub ImgCFDiMasivo_Click(sender As Object, e As ImageClickEventArgs) Handles ImgCFDiMasivo.Click
|
|
Dim Msg As New StringBuilder
|
|
Dim GvT As GridView = Gv
|
|
Dim UUID, RFCDe, RFCPara As String
|
|
|
|
If Tabs.ActiveTabIndex = 1 Then
|
|
GvT = GvFyE
|
|
End If
|
|
|
|
|
|
For Each gvr As GridViewRow In GvT.Rows
|
|
|
|
'recorro las que no se han validado
|
|
If gvr.DataKey("ValidacionFactura") <> "" Then
|
|
UUID = gvr.DataKey("ValidacionFactura").Split("|"c)(1)
|
|
RFCDe = gvr.DataKey("ValidacionFactura").Split("|"c)(2)
|
|
RFCPara = gvr.DataKey("ValidacionFactura").Split("|"c)(3)
|
|
|
|
Dim Valida As New ClsValidaCFDi(UUID, RFCDe, RFCPara)
|
|
If Valida.EsValida > 0 Then
|
|
If Valida.EsValida = 2 Then
|
|
Msg.AppendFormat("{0} - {1}<br/>", gvr.DataKey("RazonSocial"), gvr.DataKey("SerieFolio"))
|
|
End If
|
|
|
|
'Dim ObjDatos As New ClsCompras
|
|
|
|
'If ObjDatos.UpdateEstatus(Valida.EsValida, gvr.DataKey("CveFactura").ToEntero) Then
|
|
|
|
'End If
|
|
'ObjDatos.Dispose()
|
|
|
|
End If
|
|
Valida.Dispose()
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
Next
|
|
|
|
If Msg.Length > 0 Then
|
|
Alert(String.Format("Se Encontraron las siguientes facturas canceladas en el SAT: <br/>,{0}", Msg.ToString), TipoMensaje.MsgAdvertencia)
|
|
Else
|
|
Alert("La validación de facturas terminó correctamente")
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
End Class
|