/[papo]/papo/forms/payOrder.neb
ViewVC logotype

Diff of /papo/forms/payOrder.neb

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.11 by apronotti, Thu Jun 5 19:51:12 2003 UTC revision 1.12 by mhepp, Thu Jun 12 22:10:15 2003 UTC
# Line 77  Line 77 
77      </condition>      </condition>
78    </datasource>    </datasource>
79    
80    <datasource name="invTaxTotDataSource" database="papo"  <!--   <datasource name="invTaxTotDataSource" database="papo" -->
81                table="alien_document, alien_document_tax">  <!--               table="alien_document, alien_document_tax"> -->
82      <condition>  <!--     <condition> -->
83        <eq>  <!--       <eq> -->
84          <cfield name="alien_document.id"/>  <!--         <cfield name="alien_document.id"/> -->
85          <cfield name="alien_document_tax.alien_document"/>  <!--         <cfield name="alien_document_tax.alien_document"/> -->
86        </eq>  <!--       </eq> -->
87      </condition>  <!--     </condition> -->
88    </datasource>  <!--   </datasource> -->
89    
90    <datasource name="productInvoiceDataSource" database="papo"    <datasource name="alienDocumentSearchDataSource" database="papo"
91      table="_entity_data, alien_document, alien_item, alien_product_item, alien_item_tax"      table="_entity_data, alien_document" >
92      order_by="alien_product_item.id">      <!-- alien_item, alien_product_item, alien_item_tax -->
93      <condition>    <condition>
94        <and>        <and>
95          <eq>          <eq>
96            <!-- Aqui se refiere al cliente  -->            <!-- Aqui se refiere al cliente  -->
97            <cfield name="_entity_data.id"/>            <cfield name="_entity_data.id"/>
98            <cfield name="alien_document.sender"/>            <cfield name="alien_document.sender"/>
99          </eq>          </eq>
100          <eq>          <!--  <eq> -->
101            <cfield name="alien_document.id"/>          <!--           <cfield name="alien_document.id"/> -->
102            <cfield name="alien_item.alien_document"/>          <!--           <cfield name="alien_document_roceeding"/> -->
103          </eq>          <!--  </eq> -->
104          <eq>          <!--         <eq> -->
105            <cfield name="alien_item.id"/>          <!--           <cfield name="alien_item.id"/> -->
106            <cfield name="alien_product_item.alien_item"/>          <!--           <cfield name="alien_product_item.alien_item"/> -->
107          </eq>          <!--         </eq> -->
108          <eq>          <!--          <eq> -->
109            <cfield name="alien_item.id"/>          <!--            <cfield name="alien_item.id"/> -->
110            <cfield name="alien_item_tax.alien_item"/>          <!--            <cfield name="alien_item_tax.alien_item"/> -->
111          </eq>          <!--          </eq> -->
112          <or>          <or>
113            <eq>            <eq>
114              <cfield name="alien_document.alien_document_type"/>              <cfield name="alien_document.alien_document_type"/>
# Line 122  Line 122 
122              <cfield name="alien_document.alien_document_type"/>              <cfield name="alien_document.alien_document_type"/>
123              <cconst value="11"/> <!-- Factura tipo C -->              <cconst value="11"/> <!-- Factura tipo C -->
124            </eq>            </eq>
125              <eq>
126                <cfield name="alien_document.alien_document_type"/>
127                <cconst value="18"/> <!-- credit note a -->
128              </eq>
129              <eq>
130                <cfield name="alien_document.alien_document_type"/>
131                <cconst value="19"/> <!--credit note b -->
132              </eq>
133              <eq>
134                <cfield name="alien_document.alien_document_type"/>
135                <cconst value="20"/> <!--credit note c -->
136              </eq>
137          </or>          </or>
138       </and>          <or>
139              <null>
140                <cfield name="alien_document.is_void"/>
141              </null>
142              <eq>
143                <cfield name="alien_document.is_void"/>
144                <cconst value="true"/>
145              </eq>
146            </or>
147          </and>
148      </condition>      </condition>
149    </datasource>    </datasource>
150    
151    <datasource name="payTotDataSource" database="papo"    <datasource name="cancelledDocumentDataSource" database="papo"
152      table="_entity_data, alien_document, alien_document_proceeding">      table="alien_document_proceeding">
     <condition>  
       <and>  
         <eq>  
           <!-- Aqui se refiere al cliente  -->  
           <cfield name="_entity_data.id"/>  
           <cfield name="alien_document.sender"/>  
         </eq>  
         <eq>  
           <cfield name="alien_document.id"/>  
           <cfield name="alien_document_proceeding.alien_document"/>  
         </eq>  
         <and>  
           <or>  
             <eq>  
               <cfield name="alien_document.alien_document_type"/>  
               <cconst value="2"/>  
             </eq>  
             <eq>  
               <cfield name="alien_document.alien_document_type"/>  
               <cconst value="5"/>  
             </eq>  
           </or>  
         </and>  
       </and>  
     </condition>  
153    </datasource>    </datasource>
154    
155    <datasource database="papo" name="alienDocumentDataSource" table="alien_document"    <datasource database="papo" name="alienDocumentDataSource" table="alien_document"
# Line 183  Line 179 
179    <trigger name="cancelTrigger" type="NAMED">    <trigger name="cancelTrigger" type="NAMED">
180      alienDocumentSearchBlock.clear()      alienDocumentSearchBlock.clear()
181      invoiceToPayBlock.clear()      invoiceToPayBlock.clear()
182      tmpInvToPayedBlock.clear()      #tmpInvToPayedBlock.clear()
183      proceedingBlock.clear()      proceedingBlock.clear()
184      currencyMovementBlock.clear()      currencyMovementBlock.clear()
185      alienDocumentProceedingBlock.clear()      alienDocumentProceedingBlock.clear()
# Line 192  Line 188 
188      setFocus(tmpBlock.tmpDateEntry)      setFocus(tmpBlock.tmpDateEntry)
189    </trigger>    </trigger>
190    
191    <trigger name="searchTrigger" type="NAMED"><![CDATA[    <trigger name="searchTrigger" type="NAMED">
192    import printing
193  tmpInvToPayedBlock.clear()  #tmpInvToPayedBlock.clear()
194    documentType={'2': 'FCA', '10':'FCC', '11':'FCB','18':'NCA','20':'NCC','19':'NCB'}
195    documentSign={'2': 1, '10':1, '11':1,'18':-1, '20':-1, '19':-1}
196  invoiceToPayBlock.clear()  invoiceToPayBlock.clear()
197    
198  total = 0.0  total = 0.0
# Line 208  if provider: Line 206  if provider:
206      import hack      import hack
207    
208      condProductInvoice = GConditions.GCondition()      condProductInvoice = GConditions.GCondition()
209      condServiceInvoice = GConditions.GCondition()      #condServiceInvoice = GConditions.GCondition()
210      condPay = GConditions.GCondition()      
   
211      eq = GConditions.GCeq(condProductInvoice)      eq = GConditions.GCeq(condProductInvoice)
212      GConditions.GCField(eq,"_entity_data._table")      GConditions.GCField(eq,"_entity_data._table")
213      GConditions.GCConst(eq,str(provider))      GConditions.GCConst(eq,str(provider))
214    
     eq = GConditions.GCeq(condPay)  
     GConditions.GCField(eq,"_entity_data._table")  
     GConditions.GCConst(eq,str(provider))  
215    
216      # Calculo del total facturado por Productos      # Calculo del total facturado por Productos
217      productInvoiceResultSet = productInvoiceDataSource.createResultSet(condProductInvoice)      alienDocumentResultSet = alienDocumentSearchDataSource.createResultSet(condProductInvoice)
218      more = productInvoiceResultSet.firstRecord()      more = alienDocumentResultSet.firstRecord()
219    
220    
221      while more:      while more:
222          invoiceTotal = 0          invoiceTotal = 0
223          currAlienDoc = productInvoiceResultSet.current.getField("alien_document.id")          currAlienDoc = alienDocumentResultSet.current.getField("alien_document.id")
224          if not tmpInvToPayedBlock.getCurrentRecord().isEmpty():          if not invoiceToPayBlock.getCurrentRecord().isEmpty():
225              tmpInvToPayedBlock.newRecord()             invoiceToPayBlock.newRecord()
226            #calculo el total del documento
227          tmpInvToPayedBlock.idEntry = str(productInvoiceResultSet.current.getField("alien_document.id"))          documentTotal = hack.a2f(alienDocumentResultSet.current.getField("alien_document.tax_total")) + hack.a2f(alienDocumentResultSet.current.getField("alien_document.net_total"))
228          tmpInvToPayedBlock.numberEntry = str(productInvoiceResultSet.current.getField("alien_document.number"))          #tmpInvToPayedBlock.payedEntry = "0.0"
229          tmpInvToPayedBlock.dateEntry = str(productInvoiceResultSet.current.getField("alien_document.date"))          #busco lo pagado del documento
230          while productInvoiceResultSet.current.getField("alien_document.id") == currAlienDoc and more:          condPay = GConditions.GCondition()
231              lQty = hack.a2f(productInvoiceResultSet.current.getField("alien_product_item.qty"),2)          eqPay = GConditions.GCeq(condPay)
232              lUnitPrice = hack.a2f(productInvoiceResultSet.current.getField("alien_product_item.unit_price"),2)          GConditions.GCField(eqPay,"alien_document_proceeding.alien_document")
233              lBonus = hack.a2f(productInvoiceResultSet.current.getField("alien_item.bonus"),2)          GConditions.GCConst(eqPay,str(currAlienDoc))
234              lDiscount = hack.a2f(productInvoiceResultSet.current.getField("alien_item.discount"),2)          print "currAlienDoc",currAlienDoc
235              item = round(lQty * lUnitPrice - lBonus - lDiscount,2)          cancelledDocumentResultSet = cancelledDocumentDataSource.createResultSet(condPay)
236              itemTaxTotal = 0          cancelledMore= cancelledDocumentResultSet.firstRecord()
237              currItem = productInvoiceResultSet.current.getField("alien_item.id")          cancelledAmount = 0.0
238              while productInvoiceResultSet.current.getField("alien_item.id") == currItem and more:          print "ya busque y empiezo a recorrer el bucle"
239                  itemTaxTotal += hack.a2f(productInvoiceResultSet.current.getField("alien_item_tax.amount"),2)          
240                  more = productInvoiceResultSet.nextRecord()          while cancelledMore :
241              invoiceTotal += round(item + itemTaxTotal,2)              cancelledAmount += hack.a2f(cancelledDocumentResultSet.current.getField("amount"),2)
242          odt_rs = invTaxTotDataSource.createResultSet({"alien_document.id":currAlienDoc})              print "el monto cancelado es de", cancelledAmount ,"\n"
243          odt_more = odt_rs.firstRecord()              print "el id es",str(cancelledDocumentResultSet.current.getField("id")) ,"\n"
244          while odt_more:              cancelledMore = cancelledDocumentResultSet.nextRecord()
245              invoiceTotal += hack.a2f(odt_rs.current.getField("alien_document_tax.amount"),2)          #/busco lo pagado del documento
246              odt_more = odt_rs.nextRecord()          #si se adeuda algun monto muestro el documento adeudado
247            print 'documentTotal',documentTotal,'cancelledAmount',cancelledAmount
248          tmpInvToPayedBlock.amountEntry = str(invoiceTotal)          if documentTotal > cancelledAmount :
249          tmpInvToPayedBlock.payedEntry = "0.0"           print "No está cancelado"
250             docType=str(alienDocumentResultSet.current.getField("alien_document.alien_document_type")).strip()
251      # Busco las que ya han sido pagadas           invoiceToPayBlock.invoiceBox.typeEntry =documentType[docType]
252      rs = payTotDataSource.createResultSet(condPay)           invoiceToPayBlock.invoiceBox.signEntry =documentSign[docType]
253      more = rs.firstRecord()           invoiceToPayBlock.invoiceBox.idEntry = str(alienDocumentResultSet.current.getField("alien_document.id"))
254      while more:           invoiceToPayBlock.invoiceBox.numberEntry = str(alienDocumentResultSet.current.getField("alien_document.number"))
255          rc = tmpInvToPayedBlock.getRecordCount()           invoiceToPayBlock.invoiceBox.dateEntry = str(alienDocumentResultSet.current.getField("alien_document.date"))
256          for recNum in range(rc):           invoiceToPayBlock.invoiceBox.amountEntry =printing.printAccount((documentTotal * documentSign[docType]),10)
257              tmpInvToPayedBlock.jumpRecord(recNum)           invoiceToPayBlock.invoiceBox.toPayEntry =printing.printAccount(((documentTotal - cancelledAmount) * documentSign[docType]),10)
258              if hack.a2f(tmpInvToPayedBlock.idEntry,2) == hack.a2f(rs.current.getField("alien_document_proceeding.alien_document"),2):           invoiceToPayBlock.invoiceBox.payEntry = 0.0
259                  tmpInvToPayedBlock.payedEntry = str(round(           #invoiceToPayBlock.invoiceBox.totalEntry = str(round(total,2))
260                      hack.a2f(tmpInvToPayedBlock.payedEntry,2) + \          more = alienDocumentResultSet.nextRecord()
261                      hack.a2f(rs.current.getField("alien_document_proceeding.amount"),2),2))    </trigger>
         more = rs.nextRecord()  
   
     rc = tmpInvToPayedBlock.getRecordCount()  
     for recNum in range(rc):  
         tmpInvToPayedBlock.jumpRecord(recNum)  
         if hack.a2f(tmpInvToPayedBlock.payedEntry,2) < hack.a2f(tmpInvToPayedBlock.amountEntry,2):  
             if not invoiceToPayBlock.getCurrentRecord().isEmpty():  
                 invoiceToPayBlock.newRecord()  
             invoiceToPayBlock.invoiceBox.idEntry = str(tmpInvToPayedBlock.idEntry)  
             invoiceToPayBlock.invoiceBox.numberEntry = str(tmpInvToPayedBlock.numberEntry)  
             invoiceToPayBlock.invoiceBox.dateEntry = str(tmpInvToPayedBlock.dateEntry)  
             invoiceToPayBlock.invoiceBox.amountEntry = str(tmpInvToPayedBlock.amountEntry)  
             invoiceToPayBlock.invoiceBox.payedEntry = str(tmpInvToPayedBlock.payedEntry)  
             invoiceToPayBlock.invoiceBox.payEntry = str(round(  
                 hack.a2f(tmpInvToPayedBlock.amountEntry,2) - \  
                 hack.a2f(tmpInvToPayedBlock.payedEntry,2),2))  
             total += hack.a2f(invoiceToPayBlock.invoiceBox.payEntry,2)  
   
 invoiceToPayBlock.invoiceBox.totalEntry = str(round(total,2))  
   
   ]]></trigger>  
262    
263    <trigger type="NAMED" name="totalTrigger"><![CDATA[    <trigger type="NAMED" name="totalTrigger"><![CDATA[
264    
# Line 295  total = 0.0 Line 268  total = 0.0
268    
269  for recNum in range(rc):  for recNum in range(rc):
270      invoiceToPayBlock.jumpRecord(recNum)      invoiceToPayBlock.jumpRecord(recNum)
271      total += hack.a2f(invoiceToPayBlock.invoiceBox.payEntry,2)      total += hack.a2f(invoiceToPayBlock.invoiceBox.payEntry,2) * hack.a2f(invoiceToPayBlock.invoiceBox.signEntry)
272    
273  invoiceToPayBlock.invoiceBox.totalEntry = str(round(total,2))  invoiceToPayBlock.invoiceBox.totalEntry = str(round(total,2))
274    
# Line 356  try: Line 329  try:
329      line += "  Codigo : " + printing.printField(alienDocumentSearchBlock.providerSearchBox.providerCodeEntry,10)      line += "  Codigo : " + printing.printField(alienDocumentSearchBlock.providerSearchBox.providerCodeEntry,10)
330      line += "  Nombre : " + printing.printField(alienDocumentSearchBlock.providerSearchBox.providerNameEntry,30)      line += "  Nombre : " + printing.printField(alienDocumentSearchBlock.providerSearchBox.providerNameEntry,30)
331      table.append(line)      table.append(line)
332        line = "| " + printing.printTitle("tipo",4) + " | "
333      line = "| " + printing.printTitle("Numero",14) + " | "      line += printing.printTitle("Numero",14) + " | "
334      line += printing.printTitle("Fecha",20) + " | "      line += printing.printTitle("Fecha",20) + " | "
335      line += printing.printTitle("Monto",20) + " | "      line += printing.printTitle("Monto",20) + " | "
336      line += printing.printTitle("Pagado",20) + " |"      line += printing.printTitle("Por cancelar",20) + " | "
337        line += printing.printTitle("Cancelado",20) + " |"
338      lineLen = len(line)      lineLen = len(line)
339      table.append(line)      table.append(line)
340    
# Line 374  try: Line 348  try:
348          invoiceToPayBlock.jumpRecord(recNum)          invoiceToPayBlock.jumpRecord(recNum)
349          if hack.a2f(invoiceToPayBlock.invoiceBox.payEntry,2) > 0:          if hack.a2f(invoiceToPayBlock.invoiceBox.payEntry,2) > 0:
350              line = "| "              line = "| "
351                line += printing.printField(invoiceToPayBlock.invoiceBox.typeEntry,4,'r') + " | "
352              line += printing.printField(invoiceToPayBlock.invoiceBox.numberEntry,14,'r') + " | "              line += printing.printField(invoiceToPayBlock.invoiceBox.numberEntry,14,'r') + " | "
353              line += printing.printField(invoiceToPayBlock.invoiceBox.dateEntry,20,'r') + " | "              line += printing.printField(invoiceToPayBlock.invoiceBox.dateEntry,20,'r') + " | "
354              line += printing.printField(invoiceToPayBlock.invoiceBox.amountEntry,20,'r') + " | "              line += printing.printField(invoiceToPayBlock.invoiceBox.amountEntry,20,'r') + " | "
355              line += printing.printField(invoiceToPayBlock.invoiceBox.payEntry,20,'r') + " |"              line += printing.printField(invoiceToPayBlock.invoiceBox.toPayEntry,20,'r') + " | "
356                if  invoiceToPayBlock.invoiceBox.signEntry > 0 :
357                    line += printing.printField(invoiceToPayBlock.invoiceBox.payEntry,20,'r') + " |"
358                else :
359                    line += printing.printField("("+str(invoiceToPayBlock.invoiceBox.payEntry)+")",20,'r') + " |"
360              table.append(line)              table.append(line)
361    
362      line = "  "      
363      line += printing.printField(" ",14) + "   "      line = printing.printField(" ",72)
364      line += printing.printField(" ",20) + "   "      line += printing.printTitle("Pagado ",20) + " | "
     line += printing.printTitle(" ",20) + " | "  
365      line += printing.printField(invoiceToPayBlock.invoiceBox.totalEntry,20,'r') + " | "      line += printing.printField(invoiceToPayBlock.invoiceBox.totalEntry,20,'r') + " | "
366      table.append(line)      table.append(line)
367    
# Line 438  callTrigger('searchNextPayOrderNumber') Line 416  callTrigger('searchNextPayOrderNumber')
416  import hack  import hack
417    
418  callTrigger('totalTrigger')  callTrigger('totalTrigger')
419  if hack.a2f(invoiceToPayBlock.invoiceBox.totalEntry,2) > 0:  if hack.a2f(invoiceToPayBlock.invoiceBox.totalEntry,2) >= 0:
420      currencyTypeBlock.clear()      currencyTypeBlock.clear()
421      currencyDataBlock.clear()      currencyDataBlock.clear()
422    
# Line 570  else: Line 548  else:
548        </box>        </box>
549      </block>      </block>
550    
551      <block name="tmpInvToPayedBlock" datasource="tmpInvToPayDataSource">      <!--  <block name="tmpInvToPayedBlock" datasource="tmpInvToPayDataSource"> -->
552        <entry name="idEntry" field="id" hidden="" x="1" y="1" width="1" />      <!--       <entry name="idEntry" field="id" hidden="" x="1" y="1" width="1" /> -->
553        <entry name="numberEntry" field="number" hidden="" x="1" y="1" width="1" />      <!--       <entry name="numberEntry" field="number" hidden="" x="1" y="1" width="1" /> -->
554        <entry name="dateEntry" field="date" hidden="" x="1" y="1" width="1"/>      <!--       <entry name="dateEntry" field="date" hidden="" x="1" y="1" width="1"/> -->
555        <entry name="amountEntry" field="amount" hidden="" x="1" y="1" width="1"/>      <!--       <entry name="amountEntry" field="amount" hidden="" x="1" y="1" width="1"/> -->
556        <entry name="payedEntry" field="payed" hidden="" x="1" y="1" width="1"/>      <!--       <entry name="payedEntry" field="payed" hidden="" x="1" y="1" width="1"/> -->
557      </block>      <!--     </block> -->
558    
559      <block name="invoiceToPayBlock" datasource="invoiceToPayDataSource">      <block name="invoiceToPayBlock" datasource="invoiceToPayDataSource">
560        <box height="12" label="Facturas A Pagar" name="invoiceBox"        <box height="12" label="Comprobantes a Pagar" name="invoiceBox" width="85" x="0" y="7">
561          width="85" x="0" y="7">          <label  text="Tipo" x="1" y="1"/>
562          <label name="numberLbl" text="Numero" x="1" y="1"/>          <label name="numberLbl" text="Numero" x="6" y="1"/>
563          <label name="dateLbl" text="Fecha" x="20" y="1"/>          <label name="dateLbl" text="Fecha" x="20" y="1"/>
564          <label name="amountLbl" text="Monto" x="33" y="1"/>          <label name="amountLbl" text="Monto" x="33" y="1"/>
565          <label name="payedLbl" text="Pagado" x="45" y="1"/>          <label name="payedLbl" text="Por cancelar" x="45" y="1"/>
566          <label name="payLbl" text="A Pagar" x="57" y="1"/>          <label name="payLbl" text="A cancelar" x="58" y="1"/>
567            <entry name="signEntry"  style="label" hidden="" rows="8" x="1" y="2" width="1" />
568          <entry name="idEntry" field="id" style="label" hidden="" rows="8"          <entry name="idEntry" field="id" style="label" hidden="" rows="8"
569            x="1" y="2" width="1" />            x="1" y="2" width="1" />
570            <entry name="typeEntry"  style="label" rows="8"
571              x="1" y="2" width="19" />
572          <entry name="numberEntry" field="number" style="label" rows="8"          <entry name="numberEntry" field="number" style="label" rows="8"
573            x="1" y="2" width="19" readonly=""/>            x="5" y="2" width="19" />
574          <entry name="dateEntry" field="date" style="label" rows="8"          <entry name="dateEntry" field="date" style="label" rows="8"
575            x="20" y="2" width="11" readonly=""/>            x="20" y="2" width="11" />
576          <entry name="amountEntry" field="amount" style="label" rows="8"          <entry name="amountEntry" field="amount" style="label" rows="8"
577            typecast="number" displaymask="%0.2f"            x="33" y="2" width="10" />
578            x="33" y="2" width="10" readonly=""/>          <entry name="toPayEntry" field="to_pay" style="label" rows="8"
579          <entry name="payedEntry" field="payed" style="label" rows="8"            x="45" y="2" width="11" />
           x="45" y="2" width="11" readonly="" typecast="number" displaymask="%0.2f"/>  
580          <entry name="payEntry" field="pay"  rows="8" x="57" y="2" width="10"          <entry name="payEntry" field="pay"  rows="8" x="57" y="2" width="10"
581            typecast="number" displaymask="%0.2f">            typecast="number" displaymask="%0.2f">
582            <trigger type="PRE-FOCUSOUT" src="totalTrigger"/>            <trigger type="PRE-FOCUSOUT" src="totalTrigger"/>
# Line 605  else: Line 584  else:
584          <scrollbar page="2" x="68" y="2" width="1" height="8"/>          <scrollbar page="2" x="68" y="2" width="1" height="8"/>
585    
586          <label name="totalLbl" text="Total a Pagar" x="70" y="5"/>          <label name="totalLbl" text="Total a Pagar" x="70" y="5"/>
587          <entry name="totalEntry" field="total" x="70" y="6" width="10" readonly=""          <entry name="totalEntry" field="total" x="70" y="6" width="10"
588            typecast="number" displaymask="%0.2f"/>            typecast="number" displaymask="%0.2f"/>
589    
590          <button name="acceptButton" trigger="endPayTrigger" label="Fin O.Pago"          <button name="acceptButton" trigger="endPayTrigger" label="Fin O.Pago"

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26