xj qian
2024-06-27 b8e6a7bb37d04f1e974e231a5caffc1854cf7f41
jrj/project/business/GDN3.maint.cpp
@@ -8,6 +8,8 @@
#include "viewobject/view.base.hpp"
#include "viewobject/saleorder.view.hpp"
#include "viewobject/quote.view.hpp"
#include "viewobject/gdn3.view.hpp"
#include "viewobject/custom.view.hpp"
class __declspec(dllexport) GDN3MaintWin : public maint
{
@@ -106,7 +108,7 @@
         }
      }
      tools += L"</vbox>";
      SetAgentNodeContent(anode, tools);
      SetAgentNode(anode, tools);
      return 1;
   }
@@ -516,7 +518,7 @@
      KXMLDOMDocument xbasedoc = xbase;
      dw_base.DwUpdateAllTo(xbasedoc);
      xaserverarg arg = GDNView::MakeArg();
      xaserverarg arg ;
      //if(dw_billnote.DeletedCount()+dw_billnote.ModifiedCount() > 0)
      //{
      xml xbillnote ;
@@ -549,7 +551,7 @@
   
      KXMLDOMDocument xprofitdoc = xprofit;
      dw_profit.DwUpdateAllTo(xprofitdoc);
      xaserverarg arg3 = GDNView::MakeArg();
      xaserverarg arg3 ;
      arg3.AddArg(L"content", xprofit.xml());
      if (xurl::get(L"/sale/data/Gdn/update/profit", arg3.GetString(), xprofit) != 1)
      {
@@ -582,7 +584,7 @@
      KXMLDOMDocument xitemdoc = xitem;
      dw_item.DwUpdateAllToEx(xitemdoc);
      //dw_base.DwUpdateAllTo(xitemdoc);
      xaserverarg arg1 = GDNView::MakeArg();
      xaserverarg arg1 ;
      arg1.AddArg(L"content", xitem.xml());
      if (xurl::get(L"/sale/data/Gdn/update/item", arg1.GetString(), xitem) != 1)
@@ -604,7 +606,7 @@
      xml x;
      
      dw_source.DwUpdateAllToEx(x);
      xaserverarg arg2 = GDNView::MakeArg();
      xaserverarg arg2 ;
      arg2.AddArg(L"content", x.xml());
      if (xurl::get(L"/sale/data/Gdn/update/sourceex", arg2.GetString(), x) != 1)
@@ -627,7 +629,7 @@
      {
         if (dw_custom.GetItemString(k, L"LineNo") == L"")
         {
            dw_custom.SetItemString(k, L"LineNo", k.toString());
            dw_custom.SetItemString(k, L"LineNo", xstring(k));
         }
      }
      xml xcustom;
@@ -657,7 +659,7 @@
         xml x1 ;
         
         dw_invoiceItem.DwUpdateAllToEx(x1);
         xaserverarg arg4 = GDNView::MakeArg();
         xaserverarg arg4;
         arg4.AddArg(L"content", x1.xml());
         if (xurl::get(L"/sale/data/Gdn/update/itemex", arg4.GetString(), x1) != 1)
            if (!x1)
@@ -677,7 +679,7 @@
      xml xfcl ;
      
      dw_fcl.DwUpdateAllToEx(xfcl);
      xaserverarg arg8 = GDNView::MakeArg();
      xaserverarg arg8 ;
      arg8.AddArg(L"content", xfcl.xml());
      if (xurl::get(L"/sale/data/Gdn/update/container", arg8.GetString(), xfcl) != 1)
@@ -700,7 +702,7 @@
      dw_cdelement.DwUpdateAllToEx(xcdelement);
      if (xcdelement.xml() != L"")
      {
         xcdelement = CustomView::UpdateCustomElement(dw_base.GetItemString(1, L"InvoiceNo"), xcdelement.GetXml());
         xcdelement = CustomView::UpdateCustomElement(dw_base.GetItemString(1, L"InvoiceNo"), xcdelement.xml());
         if (!xcdelement)
         {
            xstring error6 = xcdelement.text();
@@ -998,7 +1000,7 @@
      xstring GDNLineID = dw_item.GetGuid(nRow);
      if (clear) ClearSourcingItem(nRow);
      double ExchangeCostEx = dw_profit.GetItemDouble(1, L"ExchangeCostEx");
      xml x = xml::Make();
      xml x ;
      x.loadXML(L"<data/>");
      KXMLDOMElement e = dw_item.GetRowElement(nRow);
      KXMLDOMNode n = e.cloneNode(-1);
@@ -1006,7 +1008,6 @@
      n.Release();
      xstring val = x.xml();
      trace(L"=======L" + val + L"=======L");
      x.Free();
      xml source = ViewObject::RetrieveData(L"/sale/data/PurchaseOrder/gdn/sourcing/refreshitemex", L"content", val);
      if (source)
@@ -1077,7 +1078,7 @@
      xstring GDNLineID = dw_item.GetGuid(nRow);
      if (clear) ClearSourcingItem(nRow);
      double ExchangeCostEx = dw_profit.GetItemDouble(1, L"ExchangeCostEx");
      xml x = xml::Make();
      xml x ;
      x.loadXML(L"<data/>");
      KXMLDOMElement e = dw_item.GetRowElement(nRow);
      KXMLDOMNode n = e.cloneNode(-1);
@@ -1085,7 +1086,6 @@
      n.Release();
      xstring val = x.xml();
      trace(L"123=======L" + val + L"=======123");
      x.Free();
      xml source = ViewObject::RetrieveData(L"/sale/data/PurchaseOrder/gdn/sourcing/refreshitemexOne", L"content", val);
      if (source)
@@ -1162,7 +1162,7 @@
      dw_item.DwUpdateAllToEx(xitemdoc);
      
      xml x = ViewObject::RetrieveData(L"/sale/data/PurchaseOrder/gdn/sourcing/refreshitemexOne", L"content", xitem.GetXml());
      xml x = ViewObject::RetrieveData(L"/sale/data/PurchaseOrder/gdn/sourcing/refreshitemexOne", L"content", xitem.xml());
      trace(x.xml());
      if (x)
      {
@@ -1216,7 +1216,6 @@
         PoTotal();
         x.Free();
         evalProfitAmountEx();
      }
@@ -1613,7 +1612,7 @@
   {
      if (data == L"")
      {
         dw_item.SetItemDisplayString(row, col, L"");
         dw_item.SetItemDisplayString(row, col.c_str(), L"");
         dw_item.SetItemString(row, L"CDUnitPrice", L"");
         dw_item.SetItemDisplayString(row, L"CDUnitPrice", L"");
      }
@@ -1883,7 +1882,7 @@
      {
         xaserverarg arg ;
         
         xstring str = dw_billnote.GetItemString(row, colname);
         xstring str = dw_billnote.GetItemString(row, colname.c_str());
         arg.AddArg(L"value", str);
         openUrl(L"/sale/view/view.dlg/xpage/memo/edit/new", &arg);
      
@@ -1891,7 +1890,7 @@
         if (comdid == L"xmOK")
         {
            xstring value = arg.GetArgString(L"value");
            dw_billnote.SetItemString(row, colname, value);
            dw_billnote.SetItemString(row, colname.c_str(), value);
            dw_billnote.Redraw();
         }
      }
@@ -2020,7 +2019,7 @@
   int OnMakeCustom()
   {
      int HCursor = xutil::SetCursorWait();
      HCURSOR HCursor = xutil::SetCursorWait();
      dw_custom.AcceptText();
      int cnt = dw_custom.GetRowCount();
      bool cdelement = false;
@@ -2238,8 +2237,8 @@
      {
         if (dw_custom.GetItemString(m, L"UseFlag") == L"0")
         {
            if (dw_custom.GetItemString(i, L"ClassifyID") != L"")
               DeleteCDElement(dw_custom.GetItemString(i, L"ClassifyID"));
            if (dw_custom.GetItemString(m, L"ClassifyID") != L"")
               DeleteCDElement(dw_custom.GetItemString(m, L"ClassifyID"));
            dw_custom.DeleteRow(m);
         }
      }
@@ -2502,7 +2501,7 @@
   int OnAddSourcingItem()
   {
      xaserverarg arg = GDNView::MakeArg();
      xaserverarg arg ;
      arg.AddArg(L"InvoiceNo", dw_base.GetItemString(1, L"InvoiceNo"));
      int p = arg;
      OpenWindow(L"dev:xpage[select.item.po.vx]", p);
@@ -2602,7 +2601,7 @@
            KXMLDOMNode t = items.item(i);
            dw_item.SetItemString(row, L"SeqNo", xstring((row * 10)));
            dw_item.SetItemString(row, L"GDNID", dw_base.GetGuid(1));
            double cost = (double) t.selectSingleNode(L"Cost").text().todouble();
            double cost = xstring(t.selectSingleNode(L"Cost").text()).toDouble();
            
            if (t.selectSingleNode(L"SONo"))
@@ -2717,7 +2716,7 @@
            double d1 = dw_item.GetItemDouble(row, L"Quantity");
            double d2 = dw_item.GetItemDouble(row, L"UnitPrice");
            double d = d1 * d2;
            d = d.round(2);
            d = xdouble(d).round(2);
            dw_item.SetItemDouble(row, L"Amount", d);
            double UnitCommPrice = dw_item.GetItemDouble(row, L"UnitCommPrice");
@@ -2740,7 +2739,7 @@
         dw_base.SetItemString(1, L"Mark", FrontMarkss);
         double CostEx = dw_base.GetItemDouble(1, L"Cost");
         if (CostEx == 0 || CostEx == L"")
         if (CostEx == 0)
         {
            if (costs >= 0) {
               dw_base.SetItemString(1, L"CostMoreLess", L"1");
@@ -2766,14 +2765,14 @@
   int OnAddGDNItem()
   {
      //trace(L"12313");
      xaserverarg arg = GDNView::MakeArg();
      xaserverarg arg ;
      arg.AddArg(L"CustomerID", dw_base.GetItemString(1, L"CustomerID"));
      arg.AddArg(L"InvoiceNo", dw_base.GetItemString(1, L"InvoiceNo"));
      arg.AddArg(L"SONo", dw_base.GetItemString(1, L""));
      int p = arg;
      if (dw_base.GetItemString(1, L"CustomerID") == L"")
      {
         OpenWindow(L"dev:xpage[SelectItem.New.GDN.vx]", cast(arg as int));
         OpenWindow(L"dev:xpage[SelectItem.New.GDN.vx]", arg);
         if (dw_base.GetItemString(1, L"CustomerID") == L"")
         {
            dw_base.SetItemDisplayString(1, L"CustomerID", arg.GetArgString(L"PartyName"));
@@ -3206,13 +3205,13 @@
      }
      else if (comdid == L"xmMaintBuyPrice")
      {
         xaserverarg arg = GDNView::MakeArg();
         xaserverarg arg ;
         int row = dw_source.GetRow();
         if (row < 1) return 1;
         arg.AddArg(L"SupplierID", dw_source.GetItemString(row, L"SupplierID"));
         arg.AddArg(L"SupplierName", dw_source.GetItemDisplayString(row, L"SupplierID"));
         arg.AddArg(L"Price", dw_source.GetItemString(row, L"BuyUnitPrice"));
         OpenWindow(L"dev:xpage[GDNSourcePriceMaint.vx]", cast(arg as int));
         OpenWindow(L"dev:xpage[GDNSourcePriceMaint.vx]", arg);
         if (arg.GetArgString(L"result") == L"ok")
         {
            if (arg.GetArgString(L"SupplierID") != L"")
@@ -3352,13 +3351,13 @@
                  KXMLDOMNode n = o.selectSingleNode(L"VATRates");
                  if (n)
                  {
                     tax = n.text.toDouble();
                     tax = xstring(n.text()).toDouble();
                     n.Release();
                  }
                  n = o.selectSingleNode(L"VATRefundRate");
                  if (n)
                  {
                     retax = n.text.toDouble();
                     retax = xstring(n.text()).toDouble();
                     n.Release();
                  }
                  o.Release();
@@ -3430,7 +3429,6 @@
         double rate = expRate.toDouble();
         ManagementFee = sale * rate;
      }
      trace(ManagementFee.toString());
      dw_profit.SetItemDouble(1, L"ManagementFee", ManagementFee);
      return 1;
   }
@@ -3644,6 +3642,7 @@
      evalDrawbackEx();
      evalTotalCost();
      evalProfitAmountEx();
      return 1;
   }
   int OnItemAskStyle(TEvent* evt, LPARAM p)
@@ -3695,14 +3694,14 @@
      AttachEvent(L"dw_item", L"DWV_ASKSTYLE", (FEvent)&GDN3MaintWin::OnItemAskStyle);
      AttachCloseWindow();
      return 1;
   }
   int RetrieveUseBuffer(xstring invno)
   {
      xml x;
      x = new xml;
      
      xaserverarg arg;
      
@@ -3738,15 +3737,13 @@
         if (dw_billnote.GetRowCount() < 1)
         {
            xml x0;
            x0 = new xml;
            x0.setNativePointer(xml::CreateInstance());
            xstring billnote = L"<GDN><DocInfo><data><Item Name='报关发票' Field='Remark'></Item>" +
               "<Item Name='报关箱单' Field='Remark'></Item>" +
               "<Item Name='议付发票' Field='Remark'></Item>" +
               "<Item Name='议付箱单' Field='Remark'></Item>" +
               "<Item Name='装船通知' Field='Remark'></Item>" +
               "<Item Name='加拿大海关发票' Field='Remark'></Item>" +
               "<Item Name='FORMA' Field='Remark'></Item></data></DocInfo></GDN>";
            xstring billnote = L"<GDN><DocInfo><data><Item Name='报关发票' Field='Remark'></Item>"
               L"<Item Name='报关箱单' Field='Remark'></Item>"
               L"<Item Name='议付发票' Field='Remark'></Item>"
               L"<Item Name='议付箱单' Field='Remark'></Item>"
               L"<Item Name='装船通知' Field='Remark'></Item>"
               L"<Item Name='加拿大海关发票' Field='Remark'></Item>"
               L"<Item Name='FORMA' Field='Remark'></Item></data></DocInfo></GDN>";
            x0.loadXML(billnote);
            dw_billnote.Retrieve(x0);
         }
@@ -3764,10 +3761,9 @@
      dw_item.SetSelectionMode(1);
      if (dw_item.GetRowCount() < 1)
      {
         xml x2 = xml::Make();
         xml x2 ;
         x2.loadXML(L"<GDN/>");
         dw_item.Retrieve(x2);
         x2.Free();
      }
      /*
@@ -3786,7 +3782,6 @@
         ele = node;
         //node.release();
         dw_invoiceItem.Retrieve(ele);
         ele.release();
      }
      //alert(L"123"+InvoiceID);
      //dw_source.DwRetrieve(GetServerUrl(),L"[source.gdn.sql.xq]", L"EntityID",  InvoiceID);
@@ -3798,7 +3793,6 @@
         ele = node;
         //node.release();
         dw_source.Retrieve(ele);
         ele.release();
      }
      dw_custom.DwRetrieve(GetServerUrl(), L"[cdline.gdn.sql.xq]", L"EntityID", InvoiceID);
      dw_custom.SetSelectionMode(1);
@@ -3819,7 +3813,6 @@
         //node.release();
         dw_cdelement.Retrieve(ele);
         dw_cdelement.SetSelectionMode(1);
         ele.release();
      }
      node = xdoc.selectSingleNode(L"data/Item[@subject='Container' or @subject='container']/*");
@@ -3828,7 +3821,6 @@
         ele = node;
         //node.release();
         dw_fcl.Retrieve(ele);
         ele.release();
      }
      return 1;
@@ -3837,7 +3829,7 @@
   int OnRefreshSource(xstring invno)
   {
      xml x;
      x = new xml;
      
      xaserverarg arg ;
@@ -3858,7 +3850,7 @@
      //return RetrieveUseBuffer(invno);
      xml x;
      x = new xml;
      
      xaserverarg arg ;
@@ -3882,13 +3874,13 @@
      dw_billnote.Retrieve(x);
      if (dw_billnote.GetRowCount() < 1)
      {
         xstring billnote = L"<GDN><DocInfo><data><Item Name='报关发票' Field='Remark'></Item>" +
            "<Item Name='报关箱单' Field='Remark'></Item>" +
            "<Item Name='议付发票' Field='Remark'></Item>" +
            "<Item Name='议付箱单' Field='Remark'></Item>" +
            "<Item Name='装船通知' Field='Remark'></Item>" +
            "<Item Name='加拿大海关发票' Field='Remark'></Item>") +
            "<Item Name='FORMA' Field='Remark'></Item></data></DocInfo></GDN>");
         xstring billnote = L"<GDN><DocInfo><data><Item Name='报关发票' Field='Remark'></Item>"
            "<Item Name='报关箱单' Field='Remark'></Item>"
            "<Item Name='议付发票' Field='Remark'></Item>"
            "<Item Name='议付箱单' Field='Remark'></Item>"
            "<Item Name='装船通知' Field='Remark'></Item>"
            "<Item Name='加拿大海关发票' Field='Remark'></Item>"
            "<Item Name='FORMA' Field='Remark'></Item></data></DocInfo></GDN>";
         x.loadXML(billnote);
         dw_billnote.Retrieve(x);
      }
@@ -3972,8 +3964,8 @@
   xstring GetInvoiceID(xstring InvoiceNo)
   {
      xml x = xml::Make();
      xaserverarg arg = xaserverarg::Make();
      xml x ;
      xaserverarg arg ;
      arg.AddArg(L"InvoiceNo", InvoiceNo);
      xaserver::ExecXQuery(GetServerUrl(), L"[gdnid.gdn.xq]", arg.GetString(), x);
      xstring InvoiceID1 = L"";
@@ -3981,8 +3973,6 @@
      {
         InvoiceID1 = x.text();
      }
      arg.Free();
      x.Free();
      return InvoiceID1;
   }
@@ -4013,16 +4003,17 @@
      dw_base.SetGuid(1, id);
      dw_profit.SetGuid(1, id);
      xml x = ViewObject::MakeXml();
      xstring billnote = L"<GDN><DocInfo><data><Item Name='报关发票' Field='Remark'></Item>" +
         "<Item Name='报关箱单' Field='Remark'></Item>" +
         "<Item Name='议付发票' Field='Remark'></Item>" +
         "<Item Name='议付箱单' Field='Remark'></Item>" +
         "<Item Name='装船通知' Field='Remark'></Item>" +
         "<Item Name='加拿大海关发票' Field='Remark'></Item>" +
      xml x;
      xstring billnote = L"<GDN><DocInfo><data><Item Name='报关发票' Field='Remark'></Item>"
         "<Item Name='报关箱单' Field='Remark'></Item>"
         "<Item Name='议付发票' Field='Remark'></Item>"
         "<Item Name='议付箱单' Field='Remark'></Item>"
         "<Item Name='装船通知' Field='Remark'></Item>"
         "<Item Name='加拿大海关发票' Field='Remark'></Item>"
         "<Item Name='FORMA' Field='Remark'></Item></data></DocInfo></GDN>";
      x.loadXML(billnote);
      dw_billnote.Retrieve(x);
      return 1;
   }
   int onload()
@@ -4135,10 +4126,9 @@
      dw_doclist.openUrl(L"/sale/view/GDN/template/doclist");
      InvoiceNo = L"";
      if (GetParam())
      if (GetWinParam())
      {
         xaserverarg arg_param = new xaserverarg;
         arg_param.setNativePointer(GetParam());
         xaserverarg arg_param=GetArg();
         InvoiceNo = arg_param.GetArgString(L"InvoiceNo");
         if (InvoiceNo == L"") InvoiceNo = arg_param.GetArgString(L"EntityNo");
@@ -4185,10 +4175,9 @@
      else
      {
         OnNewInital();
         if (GetParam())
         if (GetWinParam())
         {
            xaserverarg arg = new xaserverarg;
            arg.setNativePointer(GetParam());
            xaserverarg arg = GetArg();
            if (arg.GetArgString(L"CustomerID") != L"")
            {
@@ -4198,7 +4187,7 @@
               xstring colname = L"CustomerID";
               xstring value = arg.GetArgString(L"CustomerID");
               KXMLDOMNodeList nlist = GetElement().selectNodes(L"//*[@name='" + dwname + L"']/trans[@for='" + colname + L"']");
               ViewObject::TransData(nlist, dw_base, 1, colname, value);
               ViewObject::TransData(nlist, dw_base, 1, colname, value);
               trace(L"+++++L");
            }
         }