Índice del Foro Modelizacion Commit Soft Modelizacion Commit Soft
Podra Buscar casos tipicos de errores y soluciones
 
 F.A.Q.F.A.Q.   BuscarBuscar   Lista de MiembrosLista de Miembros   Grupos de UsuariosGrupos de Usuarios   RegístreseRegístrese 
 PerfilPerfil   Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   ConectarseConectarse 

HOW to Circuito clasico de Ventas

 
Publicar Nuevo Tema   Responder al Tema    Índice del Foro Modelizacion Commit Soft -> Circuitos (Work Flow)
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
Typhon Software
Site Admin


Registrado: 24 Jul 2006
Mensajes: 248
Ubicación: Bs As Argentina

MensajePublicado: Mar Mar 27, 2007 1:24 pm    Título del mensaje: HOW to Circuito clasico de Ventas Responder citando

vamos a definir los pasos que deberiamos seguir para mas o menos armar un circuito de ventas ...

El mismo va a contener presupuestos, pedidos, facturas...

Primero que nada les dejo un script de iva ventas.

Código:
Sub Main ()



'posiciones en el Footer
FooterPreSubtotal = 1
Footerdescuento = 2
Footersubtotal = 3
Footeriva21 =4
Footeriva105 = 5
FooterTotal = 6
FooterRenglones = -1


'posiciones en las columnas de la grilla de ITEMS
coltotal = 7
colPreuni = 6
colCanti = 4
colbonif = 5


'busqueda de los regimens con analisis especiales
set Inscripto = obj("regim","descripcion","Responsable Inscripto")
set Consumidor = obj("regim","descripcion","Consumidor Final")
set Exento = obj("regim","descripcion","Excento")
set Monotributo = obj("regim","descripcion","Responsable Monotributo")


'asigno el nombre de los campos de impuestos 
iva105 = "iva105"
iva21 = "iva21"
CampoNeto = "neto"


'asigno el id de los impuestos !!!
elid21 ="40B5F0A4-AC9D-453D-937C-A482C84FD19A"
elidneto ="064A0C1A-7960-4587-BFAA-4BBD0F1C33A7"
elid105 ="E8A05501-8343-481C-9A6F-9F87167916FF"



gri_impositiva.Row = 0
    For Each Impuesto In Ob_Oder.taxoder
       For x = 1 To Gri_Impositiva.MaxCols
           gri_impositiva.Col = x
           If gri_impositiva.Text = Impuesto.Field("descripcion") Then
               Select Case impuesto.Field("campo")
                   Case CampoNeto
                     colneto = x
                   Case iva21
                     col21 = x
                   Case iva105
                     col105 = x
               End Select
           End If
       Next     
    Next


GrillaItems.Row = row
GrillaItems.Col = colpreuni

If Val_Dato(GrillaItems.Text) = 0 Then
    Pone_Cero_Iva row,col21,col105,colneto
    'me voy por que no queda nada mas por hacer
    grilla_items.col = coltotal
    grilla_items.text = 0
End If



Grilla_Id.Row = row
Grilla_Id.Col = 2

clase = Grilla_Id.Text

Grilla_Id.Row = row
Grilla_Id.Col = 1

'busco la tasa de iva del producto
Set Xproducto = Obj(clase,"id" & clase  ,grilla_id.Text)

If Xproducto Is Nothing Then
   Pone_Cero_Iva row,col21,col105,colneto
   sumarizadores Inscripto,coltotal,col21,col105,colpreuni,colcanti,colneto,FooterRenglones,FooterTotal,FooterPreSubtotal,Footerdescuento,FooterSubtotal,Footeriva105,Footeriva21
   'me voy por que no queda nada mas por hacer
   Exit Sub           
end If

Iva = xproducto.Field("idconfigimpu").Field("valor")


'ahora ya tengo el iva busco el neto
GrillaItems.Col = colpreuni
Neto = Val_Dato(GrillaItems.Text)


'si es un comprobante B aca lo que hago es sacarle el iva !!
If Ob_Oder.Source.Field("idregim").IdLoaded = consumidor.idloaded Then
    neto = neto / (1 + ( iva / 100 ) )
End If

If Ob_Oder.Source.Field("idregim").IdLoaded = monotributo.idloaded Then
    neto = neto / (1 + ( iva / 100 ) )
End If

If Ob_Oder.Source.Field("idregim").IdLoaded = exento.idloaded Then
    neto = neto / (1 + ( iva / 100 ) )
End If

                 
'Averiguo el porcentaje de la condicion de venta
For x=1 to formulario.t_string.count-1
   If t_string(x).Tag = "idconpa" Then
      If Trim(t_string(x).linkitem)<> "" Then
           resultantecondicion=obj("conpa","idconpa",mid(t_string(x).linkitem,2)).field("resultante")         
           exit for
       else
           resultantecondicion=0 
      End If
   End If
Next

NetoGrilla = Neto                   
neto = neto  - ( (resultantecondicion * neto) / 100 )
       

GrillaItems.Col = colcanti
Cantidad = Val_Dato(GrillaItems.Text)

'ahora busco la bonificacion
GrillaItems.Col = colbonif
porboni = Val_Dato(GrillaItems.Text)

If Val_Dato(porboni) > 100 Or Val_Dato(porboni) < 0 Then
    MsgBox "La bonificacion debe estar entre 0 y 100",vbcritical,"Error de Carga"
    porboni = 0
    GrillaItems.Text = 0
End If


neto = neto  - ( (porboni * neto) / 100 )
NetoGrilla = NetoGrilla  - ( (porboni * NetoGrilla) / 100 )

grillaitems.Col = coltotal
grillaitems.Text = Val_Dato(NetoGrilla * cantidad)





If Ob_Oder.Source.Field("idregim").IdLoaded = consumidor.idloaded Then   
    grillaitems.Text = Val_Dato(grillaitems.Text) * (1 + ( iva / 100 ) )
End If

If Ob_Oder.Source.Field("idregim").IdLoaded = monotributo.idloaded Then   
    grillaitems.Text = Val_Dato(grillaitems.Text) * (1 + ( iva / 100 ) )
End If

If Ob_Oder.Source.Field("idregim").IdLoaded = exento.idloaded Then   
    grillaitems.Text = Val_Dato(grillaitems.Text) * (1 + ( iva / 100 ) )
End If




gri_impositiva.Row = row

If Ob_Oder.Source.Field("idregim") Is Nothing Then
    MsgBox "El cliente seleccionado no tiene informacion de regimen, no se puede determinar los impuestos", vbCritical, "Error de Carga"
    Pone_Cero_Iva row,col21,col105,colneto
    sumarizadores
    Exit Sub
End If

Select Case Ob_Oder.Source.Field("idregim").IdLoaded

       Case inscripto.idloaded
         
           valorgrilla = iva * cantidad * neto
           valorgrilla = valorgrilla / 100
           
           gri_impositiva.Col = colneto
           gri_impositiva.Text = Val_Dato(neto * cantidad)
                   
           Select Case xproducto.Field("idconfigimpu").Field("id_ob_impuesto").IdLoaded
                Case elid21
                    gri_impositiva.Col = col21

                Case  elid105
                     gri_impositiva.Col = col105

                Case elidneto
                     gri_impositiva.Col = col21

           End Select
           gri_impositiva.Text = valorgrilla           


       Case consumidor.idloaded,  exento.idloaded, monotributo.idloaded
           valorgrilla = iva * cantidad * neto
           valorgrilla = valorgrilla / 100
           
           gri_impositiva.Col = colneto
           gri_impositiva.Text = Val_Dato(neto * cantidad)
                   
           Select Case xproducto.Field("idconfigimpu").Field("id_ob_impuesto").IdLoaded
                Case elid21
                    gri_impositiva.Col = col21

                Case  elid105
                     gri_impositiva.Col = col105

                Case elidneto
                     gri_impositiva.Col = col21
           End Select
           gri_impositiva.Text = valorgrilla           

End Select


 sumarizadores Inscripto,coltotal,col21,col105,colpreuni,colcanti,colneto,FooterRenglones,FooterTotal,FooterPreSubtotal,Footerdescuento,FooterSubtotal,Footeriva105,Footeriva21

End Sub




'----------------------------------------------------------------------------------------------------------------
Private Sub Pone_Cero_Iva (Row,col21,col105,colneto)
if gri_impositiva.maxrows = 0 then exit sub
stop
     gri_impositiva.Row = row
     gri_impositiva.Col = col21
     gri_impositiva.Text = 0
     gri_impositiva.Col = col105
     gri_impositiva.Text = 0
     gri_impositiva.Col = colneto
     gri_impositiva.Text = 0
End Sub


'--------------------------------------------------------------------------------------------------------------
Private sub Sumarizadores (Inscripto,coltotal,col21,col105,colpreuni,colcanti,colneto,FooterRenglones,FooterTotal,FooterPreSubtotal,Footerdescuento,FooterSubtotal,Footeriva105,Footeriva21)
dim subtotal
subtotal = 0
iva21 = 0
iva105 =0
descuento = 0
stop

For x = 1 To Grilla_Id.MaxRows


    gri_impositiva.Row = x
    grillaitems.Row = x

    gri_impositiva.Col = colneto 
    subtotal = subtotal +  Val_Dato(gri_impositiva.Text)


    gri_impositiva.Col = col21
    iva21 = iva21 + Val_Dato(gri_impositiva.Text)

    gri_impositiva.Col = col105
    iva105 = iva105 + Val_Dato(gri_impositiva.Text)
   
   If Ob_Oder.Source.Field("idregim").IdLoaded <> inscripto.idloaded Then
     grillaitems.col = coltotal
     multiplo =  val_dato(grillaitems.text)

     gri_impositiva.Col = col105
     multiplo = multiplo -  Val_Dato(gri_impositiva.Text)

     gri_impositiva.Col = col21
     multiplo = multiplo -  Val_Dato(gri_impositiva.Text)
   
   else
     grillaitems.col = coltotal
     multiplo =  val_dato(grillaitems.text)
   end if
 
    gri_impositiva.col = colneto
    descuento = descuento + (val_dato(multiplo) - val_Dato(gri_impositiva.text))

Next


if Footersubtotal <> -1 then
   GrillaFooter.Col = Footersubtotal
   GrillaFooter.Text = Format_Dato(subtotal,"#,###,###,###,##0.00")
end if


if Footeriva105 <> -1 then
   GrillaFooter.Col = Footeriva105
   GrillaFooter.Text = Format_Dato(iva105,"#,###,###,###,##0.00")
end if

if Footeriva21 <> -1 then
   GrillaFooter.Col = Footeriva21
   GrillaFooter.Text = Format_Dato(iva21,"#,###,###,###,##0.00")
end if


'ahora armo el total
If Ob_Oder.Source.Field("idregim").IdLoaded = inscripto.idloaded Then
    total = subtotal + iva21 + iva105
Else
    total = subtotal+ iva21 + iva105
End If

if FooterRenglones <> -1 then
   GrillaFooter.Col = FooterRenglones
   GrillaFooter.Text = Format_Dato(Grilla_Id.maxrows,"#,###,###,###,##0")
end if

if FooterTotal <> -1 then
   GrillaFooter.Col = FooterTotal
   GrillaFooter.Text = Format_Dato(total,"#,###,###,###,##0.00")
end if


if FooterPreSubtotal <> -1 then
   GrillaFooter.Col = FooterPreSubtotal
   presubtotal = val_dato(subtotal) + val_dato(descuento)
   if ( val_dato(presubtotal) <> val_dato(descuento) )  or (val_dato(presubtotal) =0 and val_dato(descuento) = 0) then
      GrillaFooter.Text = Format_Dato(presubtotal,"#,###,###,###,##0.00")
   end if
end if

if Footerdescuento <> -1 then
   GrillaFooter.Col = Footerdescuento
   if ( val_dato(presubtotal) <> val_dato(descuento) )  or (val_dato(presubtotal) =0 and val_dato(descuento) = 0) then
       GrillaFooter.Text = Format_Dato(descuento,"#,###,###,###,##0.00")
   end if
end if


end sub

_________________
http://www.typhon.com.ar - Soporte y Ayuda para la implementacion de Commit Soft ERP. info@typhon.com.ar
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor
Typhon Software
Site Admin


Registrado: 24 Jul 2006
Mensajes: 248
Ubicación: Bs As Argentina

MensajePublicado: Mar Mar 27, 2007 1:57 pm    Título del mensaje: Generar un presupuesto Responder citando

Despues lo que vamos hacer es generar un objeto de relacion llamado presupuesto y le vamos a dar rol de presupuesto de venta.
_________________
http://www.typhon.com.ar - Soporte y Ayuda para la implementacion de Commit Soft ERP. info@typhon.com.ar
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Visitar sitio web del autor
Mostrar mensajes anteriores:   
Publicar Nuevo Tema   Responder al Tema    Índice del Foro Modelizacion Commit Soft -> Circuitos (Work Flow) Todas las horas están en GMT - 3 Horas
Página 1 de 1

 
Saltar a:  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas


Powered by PhpBB © 2001, 2005 phpBB Group y Typhon © Empresa Desarrolladora de Software