Typhon Software Site Admin

Registrado: 24 Jul 2006 Mensajes: 248 Ubicación: Bs As Argentina
|
Publicado: Dom Abr 05, 2009 1:07 pm Título del mensaje: IFC para automatizar Siap Percepciones Arba Ingresos Brutos |
|
|
Este Gadget, genera un archivo con el formato para importar al aplicativo del Siap AG de Recaudacion de Ingresos Brutos
Hay que tener en cuenta, que se debe cambiar la query segun corresponda a cada modelo, en este script se hace un corte por empresa.
Tener en cuenta que si se cambian los nombres de los campos tambien deberan cambiar los nombres donde son impresos al archivo TXT
Saludos.-
Código: | Sub Main ()
MsgBox "Este proceso le dejara un archivo especifico para importar las percepciones a Siap Automaticamente" & vbCrLf & "A continuacion le solicitaran algunos datos",vbinformation,"Commit Soft - Arba"
Dim ccontrol
Dim hoy
Dim hoy2
hoy=now
hoy = Format_Dato(hoy,"DD/MM/YYYY")
hoy2=hoy
consulta = "select descripcion from empresa where activo = 'S'"
LoadDialogo FrmDlg
Variable_de_Dialogo FrmDlg, "Combo", "Empresa", consulta, "combo_tag"
Variable_de_Dialogo FrmDlg, "Fecha", "Fecha desde", hoy, "Fecha_desde"
Variable_de_Dialogo FrmDlg, "Fecha", "Fecha hasta", hoy2, "Fecha_hasta"
ShowDialogo FrmDlg
Do While FrmDlg.Enejecucion = 2
Do_Events
Loop
If FrmDlg.Enejecucion = 0 Then
UnloadDialogo FrmDlg
Exit Sub
End If
'alimento los parametros
Stop
For Each Ccontrol In FrmDlg
If ccontrol.Tag = "Fecha_desde" Then
fechaD = CStr(ccontrol.value)
End If
If ccontrol.Tag = "Fecha_hasta" Then
fechah = CStr(ccontrol.value)
End If
If ccontrol.Tag = "combo_tag" Then
Set laempre = Obj("empresa","descripcion",ccontrol.Text)
End If
Next
UnloadDialogo FrmDlg
fdesde = formatofecha(fechad)
fhasta = formatofecha(fechah)
'Tengo que preguntarle entre que fechas...
TrayMsn "Info","Generando archivo TXT"
Do_Events
nombre = "PerpIb" & fdesde & "al" & fhasta & ".txt"
nombre = App_Path & "\" & nombre
Dim fso, tf
Do_Events
Set fso = CreateObject("Scripting.FileSystemObject")
Set oCarpeta = FSO.GetFolder(app_path)
Set colFicheros = oCarpeta.Files
'Recorremos la colección de ficheros (objetos File)
For Each fichero In colFicheros
If UCase(fichero.Name) = UCase("PerpIb" & fdesde & "al" & fhasta & ".txt") Then
'para borrar el objeto
Set objfso = createobject("scripting.filesystemobject")
Objfso.deletefile nombre
Set objfso = Nothing
End If
Next
Set colFicheros = Nothing
Set oCarpeta = Nothing
Do_Events
Set tf = fso.CreateTextFile(nombre, True)
Do_Events
TrayMsn "Info","Buscando Facturas con Percepcion"
'*********************************************************
'******** Desde aqui los cambios en la query ************
'*********************************************************
sql = "select cab_factura_venta.fecha, cab_factura_venta.codigo,'F' as tipo, cliente.cuit, cab_factura_venta.netogravado, (eliva21 + eliva105) as iva, pingbrutos ,regim.lvta" & vbCrLf
sql = sql & "from cab_factura_venta" & vbCrLf
sql = sql & "inner join ob_flag on ob_flag.idob_flag = cab_factura_venta.idob_flag" & vbCrLf
sql = sql & "inner join rel_cab_factura_venta on rel_cab_factura_venta.idcab_factura_venta = cab_factura_venta.idcab_factura_venta" & vbCrLf
sql = sql & "inner join cliente on cliente.idcliente = rel_cab_factura_venta.destino_idcliente" & vbCrLf
sql = sql & "inner join regim on cliente.idregim = regim.idregim" & vbCrLf
sql = sql & "where cab_factura_venta.pingbrutos > 0 " & vbCrLf
sql = sql & "and cab_factura_venta.activo = 'S' And ob_flag.descripcion = 'Cerrado'" & vbCrLf
sql = sql & "and cab_factura_venta.fecha >=" & C(fdesde) & vbCrLf
sql = sql & "and cab_factura_venta.fecha <=" & C(fhasta) & vbCrLf
sql = sql & "and cab_factura_venta.idempresa = " & C(laempre.idloaded)
sql = sql & "union" & vbCrLf
sql = sql & "select cab_debito_venta.fecha, cab_debito_venta.codigo,'D' as tipo, cliente.cuit, cab_debito_venta.netogravado, (eliva21 + eliva105) as iva, pingbrutos ,regim.lvta" & vbCrLf
sql = sql & "from cab_debito_venta" & vbCrLf
sql = sql & "inner join ob_flag on ob_flag.idob_flag = cab_debito_venta.idob_flag" & vbCrLf
sql = sql & "inner join rel_cab_debito_venta on rel_cab_debito_venta.idcab_debito_venta = cab_debito_venta.idcab_debito_venta" & vbCrLf
sql = sql & "inner join cliente on cliente.idcliente = rel_cab_debito_venta.destino_idcliente" & vbCrLf
sql = sql & "inner join regim on cliente.idregim = regim.idregim" & vbCrLf
sql = sql & "where cab_debito_venta.pingbrutos > 0 " & vbCrLf
sql = sql & "and cab_debito_venta.activo = 'S' And ob_flag.descripcion = 'Cerrado'" & vbCrLf
sql = sql & "and cab_debito_venta.fecha >=" & C(fdesde) & vbCrLf
sql = sql & "and cab_debito_venta.fecha <=" & C(fhasta) & vbCrLf
sql = sql & "and cab_debito_venta.idempresa = " & C(laempre.idloaded)
sql = sql & "union" & vbCrLf
sql = sql & "select cab_credito_venta.fecha, cab_credito_venta.codigo,'D' as tipo, cliente.cuit, cab_credito_venta.netogravado, (eliva21 + eliva105) as iva, pingbrutos ,regim.lvta" & vbCrLf
sql = sql & "from cab_credito_venta" & vbCrLf
sql = sql & "inner join ob_flag on ob_flag.idob_flag = cab_credito_venta.idob_flag" & vbCrLf
sql = sql & "inner join rel_cab_credito_venta on rel_cab_credito_venta.idcab_credito_venta = cab_credito_venta.idcab_credito_venta" & vbCrLf
sql = sql & "inner join cliente on cliente.idcliente = rel_cab_credito_venta.destino_idcliente" & vbCrLf
sql = sql & "inner join regim on cliente.idregim = regim.idregim" & vbCrLf
sql = sql & "where cab_credito_venta.pingbrutos > 0 " & vbCrLf
sql = sql & "and cab_credito_venta.activo = 'S' And ob_flag.descripcion = 'Cerrado'" & vbCrLf
sql = sql & "and cab_credito_venta.fecha >=" & C(fdesde) & vbCrLf
sql = sql & "and cab_credito_venta.fecha <=" & C(fhasta) & vbCrLf
sql = sql & "and cab_credito_venta.idempresa = " & C(laempre.idloaded)
'*********************************************************
'******** Fin de posibles cambios en la query ************
'*********************************************************
Set com_reg = Consulta_Sql(sql)
Do While Not com_reg.eof
Do_Events
'ahora vamos a formatear la linea...
lineaib = Format_Dato(com_reg.fields("cuit").value,"##-########-#")
lineaib = lineaib & Format_Dato(com_reg.fields("fecha").Value,"YYYY-MM-DD")
lineaib = lineaib & com_reg.fields("tipo").Value
lineaib = lineaib & com_reg.fields("lvta").Value
lineaib = lineaib & "0001" 'este es el numero de sucursal o punto de venta por ahora lo dejo fijo
lineaib = lineaib & com_reg.fields("codigo").Value
valorneto = Val_Dato(com_reg.fields("netogravado").value) * 100
lineaib = lineaib & Format_Dato(valorneto,"000000000000") 'se debe formatear con 12 caracteres
pingbrutos = Val_Dato(com_reg.fields("pingbrutos").value) * 100
lineaib = lineaib & Format_Dato(pingbrutos,"00000000000") 'se debe formatear con 11 caracteres
lineaib = lineaib & vbCrLf
tf.Write lineaib
com_reg.movenext
Loop
tf.Close
MsgBox "Dejamos el archivo " & nombre & " con el formato especifico para importar las percepciones a Siap",vbinformation,"Commit Soft - Arba"
End Sub
'-----------------------------------------------------------------------------------
Function formatofecha(fecha)
formatofecha = Format_Dato(cdate(fecha), "YYYY-MM-DD")
End Function | [/b] _________________ http://www.typhon.com.ar - Soporte y Ayuda para la implementacion de Commit Soft ERP. info@typhon.com.ar |
|