| | |
| | | private void writeBackPayment(FieldSetEntity fs){ |
| | | //回写发票号回款 |
| | | DataTableEntity dt = fs.getSubDataTable(CmnConst.LX_PROJECT_CONTRACT_PAYMENT_COLLECTION); |
| | | String contractTermsUUID = fs.getString("contract_terms"); |
| | | for (int i = 0; i <dt.getRows() ; i++) { |
| | | FieldSetEntity subFs = dt.getFieldSetEntity(i); |
| | | FieldSetEntity collection_amount_fs = baseDao.getFieldSetBySQL("SELECT sum(collection_amount) collection_amount FROM `product_project_contract_payment_collection` where invoice_num=?", new String[]{subFs.getString("invoice_num")}, false); |
| | | baseDao.executeUpdate("UPDATE product_project_contract_invoice_info set payment_amount=? where invoice_num=?",new String[]{collection_amount_fs.getString("collection_amount"),subFs.getString("invoice_num")}); |
| | | baseDao.executeUpdate("UPDATE product_project_contract_invoice_info set payment_amount=? where invoice_num=? AND contract_terms=?",new String[]{collection_amount_fs.getString("collection_amount"), subFs.getString("invoice_num"), contractTermsUUID}); |
| | | } |
| | | //回写条款回款 |
| | | FieldSetEntity contractTerms = baseDao.getFieldSetBySQL("SELECT sum(collection_amount) collection_amount FROM `product_project_contract_payment_collection` \n" + |
| | | "where contract_payment_uuid in(SELECT uuid FROM product_project_contract_payment where contract_terms=?)", new String[]{fs.getString("contract_terms")}, false); |
| | | "where contract_payment_uuid in(SELECT uuid FROM product_project_contract_payment where contract_terms=?)", new String[]{contractTermsUUID}, false); |
| | | if (contractTerms!=null&&!StringUtils.isEmpty(contractTerms.getString("collection_amount"))) { |
| | | FieldSetEntity contractInfoSub = new FieldSetEntity(); |
| | | contractInfoSub.setTableName(CmnConst.LX_PROJECT_CONTRACT_INFO_SUB); |
| | |
| | | * @throws BaseException |
| | | */ |
| | | public DataTableEntity paymentCollectionData()throws BaseException{ |
| | | return baseDao.listTable("SELECT b.project_name,b.customer_name,a.contract_name,c.clause_content,d.invoice_num,e.apply_time,d.invoice_amount,f.collection_amount,f.collection_time FROM \n" + |
| | | "product_project_contract_info a \n" + |
| | | "LEFT JOIN product_project_business b on a.project_uuid=b.uuid\n" + |
| | | "LEFT JOIN product_project_contract_info_sub c on a.uuid =c.contract_info_uuid\n" + |
| | | "LEFT JOIN product_project_contract_invoice_info d on c.uuid=d.contract_terms\n" + |
| | | "LEFT JOIN product_project_contract_invoice e on e.uuid=d.contract_invoice_uuid\n" + |
| | | "LEFT JOIN product_project_contract_payment_collection f on d.invoice_num=f.invoice_num",new String[]{}); |
| | | StringBuilder sbSql = new StringBuilder(); |
| | | sbSql.append("SELECT A.*,(A.contract_amount - A.amount_collected) AS unpaid_amount \n"); |
| | | sbSql.append("FROM ( \n"); |
| | | sbSql.append(" SELECT \n"); |
| | | sbSql.append(" b.project_name,g.customer_name,a.contract_name,a.contract_amount, \n"); |
| | | sbSql.append(" (SELECT IFNULL(SUM(amount_collected), 0) FROM product_project_contract_payment WHERE contract_name = A.uuid)AS amount_collected, \n"); |
| | | sbSql.append(" c.clause_content,d.invoice_num,e.apply_time,d.invoice_amount,f.collection_amount,f.collection_time \n"); |
| | | sbSql.append(" FROM product_project_contract_info a \n"); |
| | | sbSql.append(" LEFT JOIN product_project_business b on a.project_uuid=b.uuid \n"); |
| | | sbSql.append(" LEFT JOIN product_project_contract_info_sub c on a.uuid =c.contract_info_uuid \n"); |
| | | sbSql.append(" LEFT JOIN product_project_contract_invoice_info d on c.uuid=d.contract_terms \n"); |
| | | sbSql.append(" LEFT JOIN product_project_contract_invoice e on e.uuid=d.contract_invoice_uuid \n"); |
| | | sbSql.append(" LEFT JOIN product_project_contract_payment_collection f on d.invoice_num=f.invoice_num \n"); |
| | | sbSql.append(" LEFT JOIN product_project_customer g on b.customer_name=g.uuid \n"); |
| | | sbSql.append(")A \n"); |
| | | return baseDao.listTable(sbSql.toString(),new String[]{}); |
| | | } |
| | | |
| | | } |