public synchronized void doPost(HttpServletRequest request, HttpServletResponse response)
      throws IOException, ServletException {
    HttpSession dbSession = request.getSession();
    JspFactory _jspxFactory = JspFactory.getDefaultFactory();
    PageContext pageContext =
        _jspxFactory.getPageContext(this, request, response, "", true, 8192, true);
    ServletContext dbApplication = dbSession.getServletContext();

    try {
      PrintWriter out = response.getWriter();

      nseer_db_backup1 stock_db = new nseer_db_backup1(dbApplication);
      nseer_db_backup1 crm_db = new nseer_db_backup1(dbApplication);
      if (stock_db.conn((String) dbSession.getAttribute("unit_db_name"))
          && crm_db.conn((String) dbSession.getAttribute("unit_db_name"))) {

        FileKind FileKind = new FileKind();
        ValidataNumber validata = new ValidataNumber();
        ValidataRecord vr = new ValidataRecord();

        counter count = new counter(dbApplication);
        ValidataTag vt = new ValidataTag();
        String register_ID = (String) dbSession.getAttribute("human_IDD");
        String config_id = request.getParameter("config_id");
        String pay_ID = request.getParameter("pay_ID");
        String product_amount = request.getParameter("product_amount");
        int num = Integer.parseInt(product_amount);
        String payer_name = request.getParameter("payer_name");
        String payer_ID = request.getParameter("payer_ID");
        String reason = request.getParameter("reason");
        String not_return_tag = request.getParameter("not_return_tag");
        String register = request.getParameter("register");
        String register_time = request.getParameter("register_time");
        String demand_return_time = request.getParameter("demand_return_time");
        String sales_name = request.getParameter("sales_name");
        String sales_ID = request.getParameter("sales_ID");
        String bodyc = new String(request.getParameter("remark").getBytes("UTF-8"), "UTF-8");
        String remark = exchange.toHtml(bodyc);
        String time = "";
        java.util.Date now = new java.util.Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
        time = formatter.format(now);
        String[] product_IDn = request.getParameterValues("product_ID");
        String[] amountn = request.getParameterValues("amount");
        if (num == 0 && product_IDn.length == 1) {
          response.sendRedirect("draft/crm/credit_ok_a.jsp?pay_ID=" + pay_ID);
        } else {
          int p = 0;
          for (int i = 1; i <= num; i++) {
            String tem_amount = "amount" + i;
            String amount = request.getParameter(tem_amount);
            if (amount.equals("")) amount = "0";
            if (!validata.validata(amount)) {
              p++;
            }
          }
          int n = 0;
          String product_ID_group = "";
          for (int j = 1; j < product_IDn.length; j++) {
            product_ID_group += product_IDn[j] + ",";
            if (amountn[j].equals("")) amountn[j] = "0";
            if (!validata.validata(amountn[j])) {
              p++;
            }
          }
          for (int i = 1; i <= num; i++) {
            String tem_product_ID = "product_ID" + i;
            String product_ID = request.getParameter(tem_product_ID);
            if (product_ID_group.indexOf(product_ID) != -1) n++;
          }
          if (vt.validata(
                      (String) dbSession.getAttribute("unit_db_name"),
                      "stock_apply_pay",
                      "pay_ID",
                      pay_ID,
                      "check_tag")
                  .equals("9")
              || vt.validata(
                      (String) dbSession.getAttribute("unit_db_name"),
                      "stock_apply_pay",
                      "pay_ID",
                      pay_ID,
                      "check_tag")
                  .equals("5")) {

            if (p == 0) {
              try {
                if (n == 0) {
                  boolean flag = false;
                  List rsList = GetWorkflow.getList(crm_db, "crm_config_workflow", "05");
                  String[] elem = new String[3];
                  if (rsList.size() == 0) {
                    flag = true;
                  }
                  String sqll = "";
                  String[] aaa1 =
                      FileKind.getKind(
                          (String) dbSession.getAttribute("unit_db_name"),
                          "crm_file",
                          "customer_ID",
                          payer_ID);

                  String stock_pay_ID =
                      NseerId.getId("stock/pay", (String) dbSession.getAttribute("unit_db_name"));
                  double demand_amount = 0.0d;
                  double list_price_sum = 0.0d;
                  double cost_price_sum = 0.0d;

                  for (int i = 1; i <= num; i++) {
                    String tem_product_name = "product_name" + i;
                    String tem_product_ID = "product_ID" + i;
                    String tem_available_amount = "available_amount" + i;
                    String tem_amount = "amount" + i;
                    String tem_list_price = "list_price" + i;
                    String tem_cost_price = "cost_price" + i;
                    String tem_type = "type" + i;
                    String tem_amount_unit = "amount_unit" + i;
                    String product_name = request.getParameter(tem_product_name);
                    String product_ID = request.getParameter(tem_product_ID);
                    String available_amount = request.getParameter(tem_available_amount);
                    String amount = request.getParameter(tem_amount);
                    if (amount.equals("")) amount = "0";
                    String list_price2 = request.getParameter(tem_list_price);
                    String cost_price = request.getParameter(tem_cost_price);
                    String type = request.getParameter(tem_type);
                    StringTokenizer tokenTO3 = new StringTokenizer(list_price2, ",");
                    String list_price = "";
                    while (tokenTO3.hasMoreTokens()) {
                      String list_price1 = tokenTO3.nextToken();
                      list_price += list_price1;
                    }
                    String amount_unit = request.getParameter(tem_amount_unit);
                    double list_price_subtotal =
                        Double.parseDouble(list_price) * Double.parseDouble(amount);
                    list_price_sum += list_price_subtotal;
                    double cost_price_subtotal =
                        Double.parseDouble(cost_price) * Double.parseDouble(amount);
                    cost_price_sum += cost_price_subtotal;
                    demand_amount += Double.parseDouble(amount);
                    String sql1 =
                        "update stock_apply_pay_details set amount='"
                            + amount
                            + "',list_price='"
                            + list_price
                            + "',list_price_subtotal='"
                            + list_price_subtotal
                            + "',cost_price='"
                            + cost_price
                            + "',subtotal='"
                            + cost_price_subtotal
                            + "' where pay_ID='"
                            + pay_ID
                            + "' and details_number='"
                            + i
                            + "'";
                    stock_db.executeUpdate(sql1);
                    if (flag) {
                      if (type.equals("物料") || type.equals("外购商品")) {
                        String sql2 =
                            "insert into stock_pay_details(pay_ID,details_number,product_ID,product_name,type,list_price,list_price_subtotal,cost_price,subtotal,amount,unpay_amount,apply_manufacture_amount,apply_purchase_amount) values('"
                                + stock_pay_ID
                                + "','"
                                + i
                                + "','"
                                + product_ID
                                + "','"
                                + product_name
                                + "','"
                                + type
                                + "','"
                                + list_price
                                + "','"
                                + list_price_subtotal
                                + "','"
                                + cost_price
                                + "','"
                                + cost_price_subtotal
                                + "','"
                                + amount
                                + "','"
                                + amount
                                + "','0','"
                                + amount
                                + "')";
                        stock_db.executeUpdate(sql2);
                      } else if (type.equals("商品") || type.equals("部件") || type.equals("委外部件")) {
                        String sql2 =
                            "insert into stock_pay_details(pay_ID,details_number,product_ID,product_name,type,list_price,list_price_subtotal,cost_price,subtotal,amount,unpay_amount,apply_manufacture_amount,apply_purchase_amount) values('"
                                + stock_pay_ID
                                + "','"
                                + i
                                + "','"
                                + product_ID
                                + "','"
                                + product_name
                                + "','"
                                + type
                                + "','"
                                + list_price
                                + "','"
                                + list_price_subtotal
                                + "','"
                                + cost_price
                                + "','"
                                + cost_price_subtotal
                                + "','"
                                + amount
                                + "','"
                                + amount
                                + "','"
                                + amount
                                + "','0')";
                        stock_db.executeUpdate(sql2);
                      }

                      String sql97 =
                          "select * from crm_salecredit_balance_details where crediter_ID='"
                              + payer_ID
                              + "' and product_ID='"
                              + product_ID
                              + "'";
                      ResultSet rs97 = crm_db.executeQuery(sql97);
                      if (rs97.next()) {
                        double balance_amount =
                            rs97.getDouble("amount") + Double.parseDouble(amount);
                        double balance_cost_price_subtotal =
                            rs97.getDouble("subtotal") + cost_price_subtotal;
                        double balance_list_price_subtotal =
                            rs97.getDouble("list_price_subtotal") + list_price_subtotal;

                        String sql96 =
                            "update crm_salecredit_balance_details set amount='"
                                + balance_amount
                                + "',check_tag='1',subtotal='"
                                + balance_cost_price_subtotal
                                + "',list_price_subtotal='"
                                + balance_list_price_subtotal
                                + "' where crediter_ID='"
                                + payer_ID
                                + "' and product_ID='"
                                + product_ID
                                + "'";
                        crm_db.executeUpdate(sql96);
                      } else {
                        String[] aaa =
                            FileKind.getKind(
                                (String) dbSession.getAttribute("unit_db_name"),
                                "design_file",
                                "product_ID",
                                product_ID);
                        String sql95 =
                            "insert into crm_salecredit_balance_details(chain_ID,chain_name,crediter_chain_ID,crediter_chain_name,product_ID,product_name,list_price,list_price_subtotal,cost_price,subtotal,amount,crediter_ID,crediter_name) values('"
                                + aaa[0]
                                + "','"
                                + aaa[1]
                                + "','"
                                + aaa1[0]
                                + "','"
                                + aaa1[1]
                                + "','"
                                + product_ID
                                + "','"
                                + product_name
                                + "','"
                                + list_price
                                + "','"
                                + list_price_subtotal
                                + "','"
                                + cost_price
                                + "','"
                                + cost_price_subtotal
                                + "','"
                                + amount
                                + "','"
                                + payer_ID
                                + "','"
                                + payer_name
                                + "')";
                        crm_db.executeUpdate(sql95);
                      }
                    }
                  }
                  String[] cost_pricen = request.getParameterValues("cost_price");
                  String[] list_pricen = request.getParameterValues("list_price");
                  String[] product_namen = request.getParameterValues("product_name");
                  String[] product_describen = request.getParameterValues("product_describe");
                  String[] amount_unitn = request.getParameterValues("amount_unit");
                  String[] typen = request.getParameterValues("type");
                  for (int i = 1; i < product_IDn.length; i++) {
                    StringTokenizer tokenTO3 = new StringTokenizer(list_pricen[i], ",");
                    String list_price = "";
                    while (tokenTO3.hasMoreTokens()) {
                      String list_price1 = tokenTO3.nextToken();
                      list_price += list_price1;
                    }
                    if (!amountn[i].equals("") && Double.parseDouble(amountn[i]) != 0) {
                      double list_price_subtotal =
                          Double.parseDouble(list_price) * Double.parseDouble(amountn[i]);
                      list_price_sum += list_price_subtotal;
                      double subtotal =
                          Double.parseDouble(cost_pricen[i]) * Double.parseDouble(amountn[i]);
                      cost_price_sum += subtotal;
                      demand_amount += Double.parseDouble(amountn[i]);
                      num++;
                      String sql1 =
                          "insert into stock_apply_pay_details(payer_chain_ID,payer_chain_name,sales_ID,sales_name,payer_ID,payer_name,payer_type,pay_ID,details_number,product_ID,product_name,product_describe,amount,amount_unit,list_price,list_price_subtotal,cost_price,subtotal,type) values ('"
                              + aaa1[0]
                              + "','"
                              + aaa1[1]
                              + "','"
                              + sales_ID
                              + "','"
                              + sales_name
                              + "','"
                              + payer_ID
                              + "','"
                              + payer_name
                              + "','销售赊货','"
                              + pay_ID
                              + "','"
                              + num
                              + "','"
                              + product_IDn[i]
                              + "','"
                              + product_namen[i]
                              + "','"
                              + product_describen[i]
                              + "','"
                              + amountn[i]
                              + "','"
                              + amount_unitn[i]
                              + "','"
                              + list_price
                              + "','"
                              + list_price_subtotal
                              + "','"
                              + cost_pricen[i]
                              + "','"
                              + subtotal
                              + "','"
                              + typen[i]
                              + "')";
                      stock_db.executeUpdate(sql1);
                      // **********************
                      if (rsList.size() == 0) {
                        if (typen[i].equals("物料") || typen[i].equals("外购商品")) {
                          String sql2 =
                              "insert into stock_pay_details(pay_ID,details_number,product_ID,product_name,type,list_price,list_price_subtotal,cost_price,subtotal,amount,unpay_amount,apply_manufacture_amount,apply_purchase_amount) values('"
                                  + stock_pay_ID
                                  + "','"
                                  + num
                                  + "','"
                                  + product_IDn[i]
                                  + "','"
                                  + product_namen[i]
                                  + "','"
                                  + typen[i]
                                  + "','"
                                  + list_price
                                  + "','"
                                  + list_price_subtotal
                                  + "','"
                                  + cost_pricen[i]
                                  + "','"
                                  + subtotal
                                  + "','"
                                  + amountn[i]
                                  + "','"
                                  + amountn[i]
                                  + "','0','"
                                  + amountn[i]
                                  + "')";
                          stock_db.executeUpdate(sql2);
                        } else if (typen[i].equals("商品")
                            || typen[i].equals("部件")
                            || typen[i].equals("委外部件")) {
                          String sql2 =
                              "insert into stock_pay_details(pay_ID,details_number,product_ID,product_name,type,list_price,list_price_subtotal,cost_price,subtotal,amount,unpay_amount,apply_manufacture_amount,apply_purchase_amount) values('"
                                  + stock_pay_ID
                                  + "','"
                                  + num
                                  + "','"
                                  + product_IDn[i]
                                  + "','"
                                  + product_namen[i]
                                  + "','"
                                  + typen[i]
                                  + "','"
                                  + list_price
                                  + "','"
                                  + list_price_subtotal
                                  + "','"
                                  + cost_pricen[i]
                                  + "','"
                                  + subtotal
                                  + "','"
                                  + amountn[i]
                                  + "','"
                                  + amountn[i]
                                  + "','"
                                  + amountn[i]
                                  + "','0')";
                          stock_db.executeUpdate(sql2);
                        }

                        String sql97 =
                            "select * from crm_salecredit_balance_details where crediter_ID='"
                                + payer_ID
                                + "' and product_ID='"
                                + product_IDn[i]
                                + "'";
                        ResultSet rs97 = crm_db.executeQuery(sql97);
                        if (rs97.next()) {
                          double balance_amount =
                              rs97.getDouble("amount") + Double.parseDouble(amountn[i]);
                          double balance_cost_price_subtotal =
                              rs97.getDouble("subtotal") + subtotal;
                          double balance_list_price_subtotal =
                              rs97.getDouble("list_price_subtotal") + list_price_subtotal;

                          String sql96 =
                              "update crm_salecredit_balance_details set amount='"
                                  + balance_amount
                                  + "',check_tag='1',subtotal='"
                                  + balance_cost_price_subtotal
                                  + "',list_price_subtotal='"
                                  + balance_list_price_subtotal
                                  + "' where crediter_ID='"
                                  + payer_ID
                                  + "' and product_ID='"
                                  + product_IDn[i]
                                  + "'";
                          crm_db.executeUpdate(sql96);
                        } else {
                          String[] aaa =
                              FileKind.getKind(
                                  (String) dbSession.getAttribute("unit_db_name"),
                                  "design_file",
                                  "product_ID",
                                  product_IDn[i]);
                          String sql95 =
                              "insert into crm_salecredit_balance_details(chain_ID,chain_name,crediter_chain_ID,crediter_chain_name,product_ID,product_name,list_price,list_price_subtotal,cost_price,subtotal,amount,crediter_ID,crediter_name) values('"
                                  + aaa[0]
                                  + "','"
                                  + aaa[1]
                                  + "','"
                                  + aaa1[0]
                                  + "','"
                                  + aaa1[1]
                                  + "','"
                                  + product_IDn[i]
                                  + "','"
                                  + product_namen[i]
                                  + "','"
                                  + list_price
                                  + "','"
                                  + list_price_subtotal
                                  + "','"
                                  + cost_pricen[i]
                                  + "','"
                                  + subtotal
                                  + "','"
                                  + amountn[i]
                                  + "','"
                                  + payer_ID
                                  + "','"
                                  + payer_name
                                  + "')";
                          crm_db.executeUpdate(sql95);
                        }
                      }
                      // ***************************
                    }
                  }
                  String sql =
                      "update stock_apply_pay set reason='"
                          + reason
                          + "',register='"
                          + register
                          + "',register_time='"
                          + register_time
                          + "',demand_return_time='"
                          + demand_return_time
                          + "',register_time='"
                          + register_time
                          + "',register='"
                          + register
                          + "',remark='"
                          + remark
                          + "',demand_amount='"
                          + demand_amount
                          + "',list_price_sum='"
                          + list_price_sum
                          + "',cost_price_sum='"
                          + cost_price_sum
                          + "',not_return_tag='"
                          + not_return_tag
                          + "' where pay_ID='"
                          + pay_ID
                          + "'";
                  stock_db.executeUpdate(sql);
                  if (flag) {
                    sql = "update stock_apply_pay set check_tag='1' where pay_ID='" + pay_ID + "'";
                    stock_db.executeUpdate(sql);
                    if (!vr.validata(
                        (String) dbSession.getAttribute("unit_db_name"),
                        "stock_pay",
                        "reasonexact",
                        pay_ID)) {
                      String sql4 =
                          "insert into stock_pay(pay_ID,reason,reasonexact,reasonexact_details,demand_amount,list_price_sum,cost_price_sum,register,register_time) values('"
                              + stock_pay_ID
                              + "','"
                              + reason
                              + "','"
                              + pay_ID
                              + "','"
                              + payer_name
                              + "','"
                              + demand_amount
                              + "','"
                              + list_price_sum
                              + "','"
                              + cost_price_sum
                              + "','"
                              + register
                              + "','"
                              + register_time
                              + "')";
                      stock_db.executeUpdate(sql4);
                    }

                    String sql98 = "select * from crm_file where customer_ID='" + payer_ID + "'";
                    ResultSet rs98 = crm_db.executeQuery(sql98);
                    if (rs98.next()) {
                      double salecredit_list_price_sum =
                          rs98.getDouble("salecredit_list_price_sum") + list_price_sum;
                      double salecredit_cost_price_sum =
                          rs98.getDouble("salecredit_cost_price_sum") + cost_price_sum;

                      String sql99 =
                          "update crm_file set credit_yes_or_not_tag='1',salecredit_list_price_sum='"
                              + salecredit_list_price_sum
                              + "',salecredit_cost_price_sum='"
                              + salecredit_cost_price_sum
                              + "' where customer_ID='"
                              + payer_ID
                              + "' ";
                      crm_db.executeUpdate(sql99);
                    }
                  } else {
                    sql = "update stock_apply_pay set check_tag='0' where pay_ID='" + pay_ID + "'";
                    stock_db.executeUpdate(sql);
                    Iterator ite = rsList.iterator();
                    while (ite.hasNext()) {
                      elem = (String[]) ite.next();
                      sql =
                          "insert into crm_workflow(config_id,object_ID,describe1,describe2) values ('"
                              + elem[0]
                              + "','"
                              + pay_ID
                              + "','"
                              + elem[1]
                              + "','"
                              + elem[2]
                              + "')";
                      crm_db.executeUpdate(sql);
                    }
                  }

                  response.sendRedirect("draft/crm/credit_ok.jsp?finished_tag=8");
                } else {

                  response.sendRedirect(
                      "draft/crm/credit_ok.jsp?finished_tag=7&pay_ID=" + pay_ID + "");
                }
              } catch (Exception ex) {
                ex.printStackTrace();
              }
            } else {

              response.sendRedirect("draft/crm/credit_ok.jsp?finished_tag=6&pay_ID=" + pay_ID + "");
            }
          } else {

            response.sendRedirect("draft/crm/credit_ok.jsp?finished_tag=9");
          }
        }
        stock_db.commit();
        crm_db.commit();
        stock_db.close();
        crm_db.close();
      } else {
        response.sendRedirect("error_conn.htm");
      }
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
  public synchronized void doPost(HttpServletRequest request, HttpServletResponse response)
      throws IOException, ServletException {
    HttpSession dbSession = request.getSession();
    JspFactory _jspxFactory = JspFactory.getDefaultFactory();
    PageContext pageContext =
        _jspxFactory.getPageContext(this, request, response, "", true, 8192, true);
    ServletContext dbApplication = dbSession.getServletContext();

    try {
      ValidataNumber validata = new ValidataNumber();
      nseer_db_backup1 crm_db = new nseer_db_backup1(dbApplication);
      if (crm_db.conn((String) dbSession.getAttribute("unit_db_name"))) {
        counter count = new counter(dbApplication);
        PrintWriter out = response.getWriter();
        String product_amount = request.getParameter("product_amount");
        String reasonexact = request.getParameter("reasonexact");
        String which_time = request.getParameter("which_time");
        int num = Integer.parseInt(product_amount);
        String reason = request.getParameter("reason");
        String customer_ID = request.getParameter("customer_ID");
        String customer_name = request.getParameter("customer_name");
        String real_customer_mailing_address =
            request.getParameter("real_customer_mailing_address");
        String real_contact_person = request.getParameter("real_contact_person");
        String real_contact_person_tel = request.getParameter("real_contact_person_tel");
        String real_contact_person_fax = request.getParameter("real_contact_person_fax");
        String real_invoice_time = request.getParameter("real_invoice_time");
        String real_invoice_type = request.getParameter("real_invoice_type");
        String register = request.getParameter("register");
        String register_ID = request.getParameter("register_ID");
        String invoice_group = request.getParameter("invoice_group");
        String register_time = request.getParameter("register_time");
        double invoiced_subtotal_sum = 0.0d;
        double invoiced_subtotal_sum_all = 0.0d;
        int p = 0;
        for (int i = 1; i <= num; i++) {
          String tem_invoice_sum = "invoice_sum" + i;
          String invoice_sum2 = request.getParameter(tem_invoice_sum);
          if (invoice_sum2.equals("")) invoice_sum2 = "0";
          StringTokenizer tokenTO2 = new StringTokenizer(invoice_sum2, ",");
          String invoice_sum = "";
          while (tokenTO2.hasMoreTokens()) {
            String invoice_sum1 = tokenTO2.nextToken();
            invoice_sum += invoice_sum1;
          }
          if (!validata.validata(invoice_sum)) {
            p++;
          }
        }
        if (p == 0) {
          int n = 0;

          if (n == 0) {
            String sql8 =
                "select * from crm_order where order_id='"
                    + reasonexact
                    + "' and (invoice_check_tag='9' or invoice_check_tag='5') and which_time='"
                    + which_time
                    + "'";
            ResultSet rs8 = crm_db.executeQuery(sql8);
            if (rs8.next()) {

              for (int j = 1; j <= num; j++) {
                String tem_details_number = "details_number" + j;
                String tem_id = "id" + j;
                String id = request.getParameter(tem_id);
                String details_number = request.getParameter(tem_details_number);
              }
              String product_ID_control1 = request.getParameter("product_ID1");
              String subtotal_control1 = request.getParameter("invoiced_subtotal1");
              double subtotal_control = Double.parseDouble(subtotal_control1);
              for (int j = 1; j <= num; j++) {
                invoiced_subtotal_sum = 0;
                String tem_details_number = "details_number" + j;
                String tem_product_name = "product_name" + j;
                String tem_product_ID = "product_ID" + j;
                String tem_subtotal = "subtotal" + j;
                String tem_invoice_sum = "invoice_sum" + j;
                String tem_invoiced_subtotal = "invoiced_subtotal" + j;
                String tem_remark = "remark" + j;
                String tem_id = "id" + j;
                String id = request.getParameter(tem_id);
                String product_name = request.getParameter(tem_product_name);
                String product_ID = request.getParameter(tem_product_ID);
                String details_number = request.getParameter(tem_details_number);
                String subtotal = request.getParameter(tem_subtotal);
                String invoiced_subtotal = request.getParameter(tem_invoiced_subtotal);
                String invoice_sum2 = request.getParameter(tem_invoice_sum);
                if (invoice_sum2.equals("")) invoice_sum2 = "0";
                StringTokenizer tokenTO1 = new StringTokenizer(invoice_sum2, ",");
                String invoice_sum = "";
                while (tokenTO1.hasMoreTokens()) {
                  String invoice_sum1 = tokenTO1.nextToken();
                  invoice_sum += invoice_sum1;
                }
                String remark = request.getParameter(tem_remark);
                if (product_ID.equals(product_ID_control1)) {
                  if (invoice_sum != null && Double.parseDouble(invoice_sum) != 0) {
                    subtotal_control += Double.parseDouble(invoice_sum);
                    invoiced_subtotal_sum_all += Double.parseDouble(invoice_sum);
                    String sql1 =
                        "update crm_ordering set reason='"
                            + reason
                            + "',customer_ID='"
                            + customer_ID
                            + "',customer_name='"
                            + customer_name
                            + "',real_customer_mailing_address='"
                            + real_customer_mailing_address
                            + "',real_contact_person='"
                            + real_contact_person
                            + "',real_contact_person_tel='"
                            + real_contact_person_tel
                            + "',real_contact_person_fax='"
                            + real_contact_person_fax
                            + "',real_invoice_time='"
                            + real_invoice_time
                            + "',real_invoice_type='"
                            + real_invoice_type
                            + "',register='"
                            + register
                            + "',register_ID='"
                            + register_ID
                            + "',register_time='"
                            + register_time
                            + "',product_ID='"
                            + product_ID
                            + "',product_name='"
                            + product_name
                            + "',invoice_sum='"
                            + invoice_sum
                            + "',remark='"
                            + remark
                            + "',invoice_group='"
                            + invoice_group
                            + "' where id='"
                            + id
                            + "'";
                    crm_db.executeUpdate(sql1);
                    if (subtotal_control == Double.parseDouble(subtotal)) {
                      String sql2 =
                          "update crm_order_details set invoiced_subtotal='"
                              + subtotal_control
                              + "',invoice_tag='1' where order_ID='"
                              + reasonexact
                              + "' and details_number='"
                              + details_number
                              + "'";
                      crm_db.executeUpdate(sql2);
                    } else {
                      String sql3 =
                          "update crm_order_details set invoiced_subtotal='"
                              + subtotal_control
                              + "' where order_ID='"
                              + reasonexact
                              + "' and details_number='"
                              + details_number
                              + "'";
                      crm_db.executeUpdate(sql3);
                    }

                  } else if (Double.parseDouble(invoice_sum) == 0) {
                    String sql7 = "delete from crm_ordering where id='" + id + "'";
                    crm_db.executeUpdate(sql7);
                  }
                } else {
                  if (invoice_sum != null && Double.parseDouble(invoice_sum) != 0) {
                    product_ID_control1 = product_ID;
                    subtotal_control =
                        Double.parseDouble(invoiced_subtotal) + Double.parseDouble(invoice_sum);
                    invoiced_subtotal_sum_all += Double.parseDouble(invoice_sum);
                    String sql1 =
                        "update crm_ordering set reason='"
                            + reason
                            + "',customer_ID='"
                            + customer_ID
                            + "',customer_name='"
                            + customer_name
                            + "',real_customer_mailing_address='"
                            + real_customer_mailing_address
                            + "',real_contact_person='"
                            + real_contact_person
                            + "',real_contact_person_tel='"
                            + real_contact_person_tel
                            + "',real_contact_person_fax='"
                            + real_contact_person_fax
                            + "',real_invoice_time='"
                            + real_invoice_time
                            + "',real_invoice_type='"
                            + real_invoice_type
                            + "',register='"
                            + register
                            + "',register_ID='"
                            + register_ID
                            + "',register_time='"
                            + register_time
                            + "',product_ID='"
                            + product_ID
                            + "',product_name='"
                            + product_name
                            + "',invoice_sum='"
                            + invoice_sum
                            + "',remark='"
                            + remark
                            + "',invoice_group='"
                            + invoice_group
                            + "' where id='"
                            + id
                            + "'";
                    crm_db.executeUpdate(sql1);
                    if (subtotal_control == Double.parseDouble(subtotal)) {
                      String sql2 =
                          "update crm_order_details set invoiced_subtotal='"
                              + subtotal_control
                              + "',invoice_tag='1' where order_ID='"
                              + reasonexact
                              + "' and details_number='"
                              + details_number
                              + "'";
                      crm_db.executeUpdate(sql2);
                    } else {
                      String sql3 =
                          "update crm_order_details set invoiced_subtotal='"
                              + subtotal_control
                              + "' where order_ID='"
                              + reasonexact
                              + "' and details_number='"
                              + details_number
                              + "'";
                      crm_db.executeUpdate(sql3);
                    }

                  } else if (Double.parseDouble(invoice_sum) == 0) {
                    String sql7 = "delete from crm_ordering where id='" + id + "'";
                    crm_db.executeUpdate(sql7);
                  }
                }
              }
              String sql2 =
                  "update crm_order set invoice_check_tag='2' where order_ID='" + reasonexact + "'";
              crm_db.executeUpdate(sql2);
              response.sendRedirect("draft/crm/invoice_ok.jsp?finished_tag=2");
            } else {
              response.sendRedirect("draft/crm/invoice_ok.jsp?finished_tag=1");
            }
          } else {
            response.sendRedirect("draft/crm/invoice_ok_a.jsp?order_ID=" + reasonexact + "");
          }
        } else {
          response.sendRedirect("draft/crm/invoice_ok_b.jsp?order_ID=" + reasonexact + "");
        }
        crm_db.commit();
        crm_db.close();

      } else {
        response.sendRedirect("error_conn.htm");
      }
    } catch (Exception ex) {
    }
  }
  public synchronized void service(HttpServletRequest request, HttpServletResponse response)
      throws IOException, ServletException {
    HttpSession dbSession = request.getSession();
    JspFactory _jspxFactory = JspFactory.getDefaultFactory();
    PageContext pageContext =
        _jspxFactory.getPageContext(this, request, response, "", true, 8192, true);
    ServletContext dbApplication = dbSession.getServletContext();
    try {
      HttpSession session = request.getSession();
      PrintWriter out = response.getWriter();
      nseer_db_backup1 fund_db = new nseer_db_backup1(dbApplication);
      nseer_db_backup1 fund_db1 = new nseer_db_backup1(dbApplication);
      if (fund_db.conn((String) dbSession.getAttribute("unit_db_name"))
          && fund_db1.conn((String) dbSession.getAttribute("unit_db_name"))) {
        counter count = new counter(dbApplication);
        ValidataRecordNumber vrn = new ValidataRecordNumber();
        ValidataTag vt = new ValidataTag();
        ValidataNumber validata = new ValidataNumber();
        try {
          String time = "";
          java.util.Date now = new java.util.Date();
          SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
          time = formatter.format(now);

          String apply_pay_ID = request.getParameter("apply_pay_ID");
          String register_time = request.getParameter("register_time");
          String register = request.getParameter("register");
          String register_ID = request.getParameter("register_ID");
          String bodyc = new String(request.getParameter("remark").getBytes("UTF-8"), "UTF-8");
          String remark = exchange.toHtml(bodyc);
          String amount = request.getParameter("amount");
          String[] file_kind = request.getParameterValues("file_kind");
          String[] cost_price_subtotal = request.getParameterValues("cost_price_subtotal");
          int p = 0;
          String file_kinda = ",";
          for (int j = 1; j < file_kind.length; j++) {
            file_kinda += file_kind[j] + ",";
            if (cost_price_subtotal[j].equals("")) cost_price_subtotal[j] = "0";
            StringTokenizer tokenTO4 = new StringTokenizer(cost_price_subtotal[j], ",");
            String cost_price_subtotal1 = "";
            while (tokenTO4.hasMoreTokens()) {
              cost_price_subtotal1 += tokenTO4.nextToken();
            }
            if (!validata.validata(cost_price_subtotal1)) {
              p++;
            }
          }
          int n = 0;
          for (int i = 1; i <= Integer.parseInt(amount); i++) {
            String tem_file_kind = "file_kind" + i;
            String file_kind2 = request.getParameter(tem_file_kind);
            if (file_kinda.indexOf(file_kind2) != -1) n++;
          }
          if (n == 0) {
            if (p == 0) {
              if (vt.validata(
                          (String) dbSession.getAttribute("unit_db_name"),
                          "fund_apply_pay",
                          "apply_pay_ID",
                          apply_pay_ID,
                          "check_tag")
                      .equals("5")
                  || vt.validata(
                          (String) dbSession.getAttribute("unit_db_name"),
                          "fund_apply_pay",
                          "apply_pay_ID",
                          apply_pay_ID,
                          "check_tag")
                      .equals("9")) {
                String currency_name = "";
                String personal_unit = "";
                String chain_ID = "";
                String chain_name = "";
                String funder = "";
                String funder_ID = "";
                String sql11 =
                    "select * from fund_apply_pay where apply_pay_ID='" + apply_pay_ID + "'";
                ResultSet rs11 = fund_db.executeQuery(sql11);
                while (rs11.next()) {
                  chain_ID = rs11.getString("chain_ID");
                  chain_name = rs11.getString("chain_name");
                  funder = rs11.getString("human_name");
                  funder_ID = rs11.getString("human_ID");
                  currency_name = rs11.getString("currency_name");
                  personal_unit = rs11.getString("personal_unit");
                }
                int expenses_amount = 0;
                String sql6 =
                    "select count(*) from fund_apply_pay_details where apply_pay_ID='"
                        + apply_pay_ID
                        + "'";
                ResultSet rs6 = fund_db.executeQuery(sql6);
                if (rs6.next()) {
                  expenses_amount = rs6.getInt("count(*)");
                }
                double demand_cost_price_sum = 0.0d;
                for (int i = 1; i <= expenses_amount; i++) {
                  String tem_cost_price_subtotal = "cost_price_subtotal" + i;
                  String cost_price_subtotal2 = request.getParameter(tem_cost_price_subtotal);
                  demand_cost_price_sum += Double.parseDouble(cost_price_subtotal2);
                  sql6 =
                      "update fund_apply_pay_details set cost_price_subtotal='"
                          + cost_price_subtotal2
                          + "' where apply_pay_ID='"
                          + apply_pay_ID
                          + "' and details_number='"
                          + i
                          + "'";
                  fund_db.executeUpdate(sql6);
                }
                for (int i = 1; i < file_kind.length; i++) {
                  StringTokenizer tokenTO1 = new StringTokenizer(file_kind[i], "/");
                  String file_chain_ID = "";
                  String file_chain_name = "";
                  while (tokenTO1.hasMoreTokens()) {
                    file_chain_ID = tokenTO1.nextToken();
                    file_chain_name = tokenTO1.nextToken();
                  }
                  StringTokenizer tokenTO4 = new StringTokenizer(cost_price_subtotal[i], ",");
                  String cost_price_subtotal1 = "";
                  while (tokenTO4.hasMoreTokens()) {
                    cost_price_subtotal1 += tokenTO4.nextToken();
                  }
                  demand_cost_price_sum += Double.parseDouble(cost_price_subtotal1);
                  expenses_amount++;
                  String sql1 =
                      "insert into fund_apply_pay_details(apply_pay_ID,details_number,file_chain_ID,file_chain_name,cost_price_subtotal) values ('"
                          + apply_pay_ID
                          + "','"
                          + expenses_amount
                          + "','"
                          + file_chain_ID
                          + "','"
                          + file_chain_name
                          + "','"
                          + cost_price_subtotal1
                          + "')";
                  fund_db.executeUpdate(sql1);
                }

                String sql =
                    "update fund_apply_pay set demand_cost_price_sum='"
                        + demand_cost_price_sum
                        + "',check_tag='2',register_time='"
                        + register_time
                        + "',register='"
                        + register
                        + "',remark='"
                        + remark
                        + "' where apply_pay_ID='"
                        + apply_pay_ID
                        + "'";
                fund_db.executeUpdate(sql);

                response.sendRedirect("draft/fund/applyPayExpenses_ok.jsp?finished_tag=2");
              } else {
                response.sendRedirect("draft/fund/applyPayExpenses_ok.jsp?finished_tag=3");
              }
            } else {
              response.sendRedirect("draft/fund/applyPayExpenses_ok.jsp?finished_tag=6");
            }
          } else {
            response.sendRedirect("draft/fund/applyPayExpenses_ok.jsp?finished_tag=7");
          }
        } catch (Exception ex) {
          ex.printStackTrace();
        }
        fund_db.commit();
        fund_db1.commit();
        fund_db.close();
        fund_db1.close();
      } else {
        response.sendRedirect("error_conn.htm");
      }
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
Exemple #4
0
  public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws IOException, ServletException {
    HttpSession dbSession = request.getSession();
    JspFactory _jspxFactory = JspFactory.getDefaultFactory();
    PageContext pageContext =
        _jspxFactory.getPageContext(this, request, response, "", true, 8192, true);
    ServletContext dbApplication = dbSession.getServletContext();

    try {
      PrintWriter out = response.getWriter();
      session = request.getSession();
      counter count = new counter(dbApplication);
      ValidataNumber validata = new ValidataNumber();
      ValidataRecord vr = new ValidataRecord();
      ValidataTag vt = new ValidataTag();
      getNameFromID getNameFromID = new getNameFromID();
      getRateFromID getRateFromID = new getRateFromID();

      nseer_db_backup1 purchase_db = new nseer_db_backup1(dbApplication);

      if (purchase_db.conn((String) dbSession.getAttribute("unit_db_name"))) {
        String register_ID = (String) session.getAttribute("human_IDD");
        String config_id = request.getParameter("config_id");
        String discussion_ID = request.getParameter("discussion_ID");
        String provider_ID = request.getParameter("provider_ID");
        String provider_name = request.getParameter("provider_name");
        String demand_contact_person = request.getParameter("demand_contact_person");
        String demand_contact_person_tel = request.getParameter("demand_contact_person_tel");
        String demand_contact_person_fax = request.getParameter("demand_contact_person_fax");
        String demand_pay_time = request.getParameter("demand_pay_time");
        String check_time = request.getParameter("check_time");
        String checker = request.getParameter("checker");
        String checker_ID = request.getParameter("checker_ID");
        String bodyc = new String(request.getParameter("remark").getBytes("UTF-8"), "UTF-8");
        String remark = exchange.toHtml(bodyc);
        String modify_tag = request.getParameter("modify_tag");
        String product_amount = request.getParameter("product_amount");
        int num = Integer.parseInt(product_amount);

        int n = 0;
        for (int i = 1; i <= num; i++) {
          String tem_amount = "amount" + i;
          String tem_off_discount = "off_discount" + i;
          String tem_list_price = "list_price" + i;
          String amount = request.getParameter(tem_amount);
          String off_discount = request.getParameter(tem_off_discount);
          String list_price2 = request.getParameter(tem_list_price);
          StringTokenizer tokenTO2 = new StringTokenizer(list_price2, ",");

          String list_price = "";
          while (tokenTO2.hasMoreTokens()) {
            String list_price1 = tokenTO2.nextToken();
            list_price += list_price1;
          }
          if (!validata.validata(amount)
              || !validata.validata(off_discount)
              || !validata.validata(list_price)) {
            n++;
          }
        }

        String sql6 =
            "select id from purchase_workflow where object_ID='"
                + discussion_ID
                + "' and ((check_tag='0' and config_id<'"
                + config_id
                + "') or (check_tag='1' and config_id='"
                + config_id
                + "'))";
        ResultSet rs6 = purchase_db.executeQuery(sql6);
        if (!rs6.next()) {
          if (vt.validata(
                  (String) dbSession.getAttribute("unit_db_name"),
                  "purchase_discussion",
                  "discussion_ID",
                  discussion_ID,
                  "check_tag")
              .equals("0")) {
            if (n == 0) {
              String time = "";
              java.util.Date now = new java.util.Date();
              SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
              time = formatter.format(now);

              String sql =
                  "update purchase_discussion set discussion_ID='"
                      + discussion_ID
                      + "',provider_ID='"
                      + provider_ID
                      + "',provider_name='"
                      + provider_name
                      + "',demand_contact_person='"
                      + demand_contact_person
                      + "',demand_contact_person_tel='"
                      + demand_contact_person_tel
                      + "',demand_contact_person_fax='"
                      + demand_contact_person_fax
                      + "',check_time='"
                      + check_time
                      + "',checker='"
                      + checker
                      + "',checker_ID='"
                      + checker_ID
                      + "',remark='"
                      + remark
                      + "' where discussion_ID='"
                      + discussion_ID
                      + "'";
              purchase_db.executeUpdate(sql);

              try {

                int service_count = 0;
                int stock_number = 0;
                int pay_amount_sum = 0;
                double sale_price_sum = 0.0d;
                double cost_price_sum = 0.0d;
                double real_cost_price_sum = 0.0d;
                for (int i = 1; i <= num; i++) {
                  String tem_product_name = "product_name" + i;
                  String tem_product_ID = "product_ID" + i;
                  String tem_product_describe = "product_describe" + i;
                  String tem_amount = "amount" + i;
                  String tem_off_discount = "off_discount" + i;
                  String tem_list_price = "list_price" + i;
                  String tem_cost_price = "cost_price" + i;
                  String tem_real_cost_price = "real_cost_price" + i;
                  String tem_amount_unit = "amount_unit" + i;
                  String product_name = request.getParameter(tem_product_name);
                  String product_ID = request.getParameter(tem_product_ID);
                  String product_describe = request.getParameter(tem_product_describe);
                  String amount1 = request.getParameter(tem_amount);
                  String off_discount = request.getParameter(tem_off_discount);
                  String list_price2 = request.getParameter(tem_list_price);
                  StringTokenizer tokenTO2 = new StringTokenizer(list_price2, ",");
                  String list_price = "";
                  while (tokenTO2.hasMoreTokens()) {
                    String list_price1 = tokenTO2.nextToken();
                    list_price += list_price1;
                  }
                  String cost_price2 = request.getParameter(tem_cost_price);
                  StringTokenizer tokenTO3 = new StringTokenizer(cost_price2, ",");
                  String cost_price = "";
                  while (tokenTO3.hasMoreTokens()) {
                    String cost_price1 = tokenTO3.nextToken();
                    cost_price += cost_price1;
                  }
                  String real_cost_price2 = request.getParameter(tem_real_cost_price);
                  StringTokenizer tokenTO4 = new StringTokenizer(real_cost_price2, ",");
                  String real_cost_price = "";
                  while (tokenTO4.hasMoreTokens()) {
                    String real_cost_price1 = tokenTO4.nextToken();
                    real_cost_price += real_cost_price1;
                  }
                  String amount_unit = request.getParameter(tem_amount_unit);
                  double amount = 0.0d;
                  double subtotal =
                      Double.parseDouble(list_price)
                          * (1 - Double.parseDouble(off_discount) / 100)
                          * Double.parseDouble(amount1);
                  double cost_price_after_discount_sum =
                      Double.parseDouble(cost_price) * Double.parseDouble(amount1);
                  double real_cost_price_after_discount_sum =
                      Double.parseDouble(real_cost_price) * Double.parseDouble(amount1);
                  sale_price_sum += subtotal;
                  cost_price_sum += cost_price_after_discount_sum;
                  real_cost_price_sum += real_cost_price_after_discount_sum;

                  double order_sale_bonus_subtotal =
                      getRateFromID.getRateFromID(
                              (String) dbSession.getAttribute("unit_db_name"),
                              "design_file",
                              "product_ID",
                              product_ID,
                              "order_sale_bonus_rate")
                          * subtotal
                          / 100;
                  double order_profit_bonus_subtotal = 0.0d;

                  String sql1 =
                      "update purchase_discussion_details set product_ID='"
                          + product_ID
                          + "',product_name='"
                          + product_name
                          + "',product_describe='"
                          + product_describe
                          + "',list_price='"
                          + list_price
                          + "',amount='"
                          + amount1
                          + "',cost_price='"
                          + cost_price
                          + "',off_discount='"
                          + off_discount
                          + "',subtotal='"
                          + subtotal
                          + "' where discussion_ID='"
                          + discussion_ID
                          + "' and details_number='"
                          + i
                          + "'";
                  purchase_db.executeUpdate(sql1);

                  String product_type = "";
                  String sql16 = "select * from design_file where product_ID='" + product_ID + "'";
                  ResultSet rs16 = purchase_db.executeQuery(sql16);
                  if (rs16.next()) {
                    product_type = rs16.getString("type");
                  }
                  if (product_type.equals("物料") || product_type.equals("外购商品")) {
                    stock_number += 1;
                  } else if (product_type.equals("商品")
                      || product_type.equals("部件")
                      || product_type.equals("委外部件")) {
                    stock_number += 1;
                  } else if (product_type.equals("服务型产品")) {
                    service_count++;
                  }
                }
                String sql2 =
                    "update purchase_workflow set checker='"
                        + checker
                        + "',checker_ID='"
                        + checker_ID
                        + "',check_time='"
                        + check_time
                        + "',check_tag='1' where object_ID='"
                        + discussion_ID
                        + "' and config_id='"
                        + config_id
                        + "'";
                purchase_db.executeUpdate(sql2);
                sql2 =
                    "select id from purchase_workflow where object_ID='"
                        + discussion_ID
                        + "' and check_tag='0'";
                ResultSet rset = purchase_db.executeQuery(sql2);
                if (!rset.next()) {
                  sql2 =
                      "update purchase_discussion set sale_price_sum='"
                          + sale_price_sum
                          + "',cost_price_sum='"
                          + cost_price_sum
                          + "',modify_tag='0',discussion_tag='1',discussion_status='等待',check_tag='1' where discussion_ID='"
                          + discussion_ID
                          + "'";
                  purchase_db.executeUpdate(sql2);
                } else {
                  sql2 =
                      "update purchase_discussion set sale_price_sum='"
                          + sale_price_sum
                          + "',cost_price_sum='"
                          + cost_price_sum
                          + "',modify_tag='0' where discussion_ID='"
                          + discussion_ID
                          + "'";
                  purchase_db.executeUpdate(sql2);
                }
              } catch (Exception ex) {
                ex.printStackTrace();
              }
              response.sendRedirect(
                  "purchase/discussion/check_choose_attachment.jsp?discussion_ID="
                      + discussion_ID
                      + "");
            } else {
              response.sendRedirect("purchase/discussion/check_ok.jsp?finished_tag=0");
            }
          } else {
            response.sendRedirect("purchase/discussion/check_ok.jsp?finished_tag=1");
          }
        } else {
          response.sendRedirect("purchase/discussion/check_ok.jsp?finished_tag=2");
        }
        purchase_db.commit();
        purchase_db.close();
      } else {
        response.sendRedirect("error_conn.htm");
      }
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }