任翠亮 6 lat temu
rodzic
commit
611b0c0a34

+ 74 - 0
.idea/inspectionProfiles/Project_Default.xml

@@ -0,0 +1,74 @@
+<component name="InspectionProjectProfileManager">
+  <profile version="1.0">
+    <option name="myName" value="Project Default" />
+    <inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="ignoredPackages">
+        <value>
+          <list size="61">
+            <item index="0" class="java.lang.String" itemvalue="PyYAML" />
+            <item index="1" class="java.lang.String" itemvalue="python-dateutil" />
+            <item index="2" class="java.lang.String" itemvalue="lml" />
+            <item index="3" class="java.lang.String" itemvalue="pycparser" />
+            <item index="4" class="java.lang.String" itemvalue="elasticsearch" />
+            <item index="5" class="java.lang.String" itemvalue="certifi" />
+            <item index="6" class="java.lang.String" itemvalue="oauthlib" />
+            <item index="7" class="java.lang.String" itemvalue="anyjson" />
+            <item index="8" class="java.lang.String" itemvalue="docutils" />
+            <item index="9" class="java.lang.String" itemvalue="django-jet" />
+            <item index="10" class="java.lang.String" itemvalue="vine" />
+            <item index="11" class="java.lang.String" itemvalue="xlrd" />
+            <item index="12" class="java.lang.String" itemvalue="django-oauth-toolkit" />
+            <item index="13" class="java.lang.String" itemvalue="tablib" />
+            <item index="14" class="java.lang.String" itemvalue="django-import-export" />
+            <item index="15" class="java.lang.String" itemvalue="cryptography" />
+            <item index="16" class="java.lang.String" itemvalue="odfpy" />
+            <item index="17" class="java.lang.String" itemvalue="boto3" />
+            <item index="18" class="java.lang.String" itemvalue="django-mptt" />
+            <item index="19" class="java.lang.String" itemvalue="optionaldict" />
+            <item index="20" class="java.lang.String" itemvalue="django-filter" />
+            <item index="21" class="java.lang.String" itemvalue="PyMySQL" />
+            <item index="22" class="java.lang.String" itemvalue="pyexcel-xlsx" />
+            <item index="23" class="java.lang.String" itemvalue="idna" />
+            <item index="24" class="java.lang.String" itemvalue="diff-match-patch" />
+            <item index="25" class="java.lang.String" itemvalue="django-qiniu-storage" />
+            <item index="26" class="java.lang.String" itemvalue="jsonfield" />
+            <item index="27" class="java.lang.String" itemvalue="cffi" />
+            <item index="28" class="java.lang.String" itemvalue="django-storages" />
+            <item index="29" class="java.lang.String" itemvalue="requests" />
+            <item index="30" class="java.lang.String" itemvalue="django-role-permissions" />
+            <item index="31" class="java.lang.String" itemvalue="django-tidb" />
+            <item index="32" class="java.lang.String" itemvalue="jdcal" />
+            <item index="33" class="java.lang.String" itemvalue="celery" />
+            <item index="34" class="java.lang.String" itemvalue="xmltodict" />
+            <item index="35" class="java.lang.String" itemvalue="urllib3" />
+            <item index="36" class="java.lang.String" itemvalue="djangorestframework" />
+            <item index="37" class="java.lang.String" itemvalue="django-cors-headers" />
+            <item index="38" class="java.lang.String" itemvalue="django-filters" />
+            <item index="39" class="java.lang.String" itemvalue="django-discover-runner" />
+            <item index="40" class="java.lang.String" itemvalue="six" />
+            <item index="41" class="java.lang.String" itemvalue="botocore" />
+            <item index="42" class="java.lang.String" itemvalue="asn1crypto" />
+            <item index="43" class="java.lang.String" itemvalue="pyexcel-io" />
+            <item index="44" class="java.lang.String" itemvalue="xlwt" />
+            <item index="45" class="java.lang.String" itemvalue="et-xmlfile" />
+            <item index="46" class="java.lang.String" itemvalue="qiniu" />
+            <item index="47" class="java.lang.String" itemvalue="chardet" />
+            <item index="48" class="java.lang.String" itemvalue="jmespath" />
+            <item index="49" class="java.lang.String" itemvalue="user-agents" />
+            <item index="50" class="java.lang.String" itemvalue="elastic-apm" />
+            <item index="51" class="java.lang.String" itemvalue="s3transfer" />
+            <item index="52" class="java.lang.String" itemvalue="Django" />
+            <item index="53" class="java.lang.String" itemvalue="django-js-asset" />
+            <item index="54" class="java.lang.String" itemvalue="django-redis" />
+            <item index="55" class="java.lang.String" itemvalue="wechatpy" />
+            <item index="56" class="java.lang.String" itemvalue="pytz" />
+            <item index="57" class="java.lang.String" itemvalue="djangorestframework-bulk" />
+            <item index="58" class="java.lang.String" itemvalue="unicodecsv" />
+            <item index="59" class="java.lang.String" itemvalue="openpyxl" />
+            <item index="60" class="java.lang.String" itemvalue="Pillow" />
+          </list>
+        </value>
+      </option>
+    </inspection_tool>
+  </profile>
+</component>

+ 4 - 0
.idea/misc.xml

@@ -1,4 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
+<<<<<<< HEAD
   <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6.3 virtualenv at C:\Users\12446\Envs\ceshi" project-jdk-type="Python SDK" />
+=======
+  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6.3 virtualenv at C:\Users\12446\Envs\meiduo12" project-jdk-type="Python SDK" />
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
 </project>

+ 5 - 0
.idea/wanjia.iml

@@ -1,10 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <module type="PYTHON_MODULE" version="4">
   <component name="NewModuleRootManager">
+<<<<<<< HEAD
     <content url="file://$MODULE_DIR$">
       <sourceFolder url="file://$MODULE_DIR$/awj/awj" isTestSource="false" />
     </content>
     <orderEntry type="jdk" jdkName="Python 3.6.3 virtualenv at C:\Users\12446\Envs\ceshi" jdkType="Python SDK" />
+=======
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
     <orderEntry type="sourceFolder" forTests="false" />
   </component>
   <component name="TestRunnerService">

+ 577 - 0
.idea/workspace.xml

@@ -1,10 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ChangeListManager">
+<<<<<<< HEAD
     <list default="true" id="dfd12a5c-7c33-415d-9f50-070ce9f4f8ce" name="Default" comment="代码结束">
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/deployment.xml" afterPath="$PROJECT_DIR$/.idea/deployment.xml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/awj/awj/utils/cust_data.py" afterPath="$PROJECT_DIR$/awj/awj/utils/cust_data.py" />
+=======
+    <list default="true" id="dfd12a5c-7c33-415d-9f50-070ce9f4f8ce" name="Default" comment="是二恶大V个">
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/misc.xml" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/modules.xml" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/vcs.xml" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/wanjia.iml" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/awj/awj/utils/et_CACC_NO.py" afterPath="$PROJECT_DIR$/awj/awj/utils/et_CACC_NO.py" />
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="TRACKING_ENABLED" value="true" />
@@ -18,12 +29,52 @@
     <SUITE FILE_PATH="coverage/wanjia$lianxi.coverage" NAME="lianxi Coverage Results" MODIFIED="1571323191887" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/awj/awj/setting" />
     <SUITE FILE_PATH="coverage/wanjia$xixi__1_.coverage" NAME="xixi (1) Coverage Results" MODIFIED="1572786070217" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/awj/awj/apps/stockinvoice" />
     <SUITE FILE_PATH="coverage/wanjia$a.coverage" NAME="a Coverage Results" MODIFIED="1571234756857" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
+<<<<<<< HEAD
     <SUITE FILE_PATH="coverage/wanjia$manage.coverage" NAME="manage Coverage Results" MODIFIED="1573644329658" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/awj" />
     <SUITE FILE_PATH="coverage/wanjia$xixi.coverage" NAME="xixi Coverage Results" MODIFIED="1571566034339" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/awj/awj/apps" />
   </component>
   <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
   <component name="FileEditorManager">
     <leaf />
+=======
+    <SUITE FILE_PATH="coverage/wanjia$manage.coverage" NAME="manage Coverage Results" MODIFIED="1573609170249" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/awj" />
+    <SUITE FILE_PATH="coverage/wanjia$xixi.coverage" NAME="xixi Coverage Results" MODIFIED="1571566034339" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/awj/awj/apps" />
+  </component>
+  <component name="ErrorTreeViewConfiguration">
+    <option name="autoscrollToSource" value="true" />
+    <option name="IS_AUTOSCROLL_TO_SOURCE" value="true" />
+  </component>
+  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
+  <component name="FileEditorManager">
+    <leaf>
+      <file leaf-file-name="cust_data.py" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/awj/awj/utils/cust_data.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="81">
+              <caret line="3" column="7" lean-forward="false" selection-start-line="3" selection-start-column="7" selection-end-line="3" selection-end-column="7" />
+              <folding>
+                <marker date="1573612659634" expanded="true" signature="287:328" ph="SELECT COUNT... CUST" />
+                <marker date="1573612659634" expanded="true" signature="414:523" ph="INSERT INTO CUST... " />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="et_CACC_NO.py" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/awj/awj/utils/et_CACC_NO.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="81">
+              <caret line="3" column="19" lean-forward="false" selection-start-line="3" selection-start-column="19" selection-end-line="3" selection-end-column="19" />
+              <folding>
+                <marker date="1573612833449" expanded="true" signature="168:208" ph="SELECT COUNT... BACC" />
+                <marker date="1573612833449" expanded="true" signature="168:210" ph="SELECT COUNT... missing_value" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+    </leaf>
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
   </component>
   <component name="FileTemplateManagerImpl">
     <option name="RECENT_TEMPLATES">
@@ -57,15 +108,21 @@
       <find>ALLOWED_HOSTS</find>
       <find>DEBUG</find>
       <find>JsonResponse</find>
+<<<<<<< HEAD
       <find>CACC_NO</find>
       <find>TF_MON</find>
+=======
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
     </findStrings>
     <replaceStrings>
       <replace>安装费用</replace>
     </replaceStrings>
   </component>
   <component name="Git.Settings">
+<<<<<<< HEAD
     <option name="PUSH_AUTO_UPDATE" value="true" />
+=======
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
   </component>
   <component name="IdeDocumentHistory">
@@ -95,6 +152,7 @@
         <option value="$PROJECT_DIR$/awj/manage.py" />
         <option value="$PROJECT_DIR$/awj/awj/apps/stockinvoice/urls.py" />
         <option value="$PROJECT_DIR$/qqq.txt" />
+<<<<<<< HEAD
         <option value="$PROJECT_DIR$/awj/awj/utils/middleware.py" />
         <option value="$PROJECT_DIR$/awj/awj/setting/dev.py" />
         <option value="$PROJECT_DIR$/awj/awj/utils/usr_data.py" />
@@ -104,6 +162,16 @@
         <option value="$PROJECT_DIR$/awj/awj/apps/PaymentOperation/views.py" />
         <option value="$PROJECT_DIR$/awj/awj/apps/stockinvoice/views.py" />
         <option value="$PROJECT_DIR$/awj/awj/utils/cust_data.py" />
+=======
+        <option value="$PROJECT_DIR$/awj/awj/apps/stockinvoice/views.py" />
+        <option value="$PROJECT_DIR$/awj/awj/utils/middleware.py" />
+        <option value="$PROJECT_DIR$/awj/awj/setting/dev.py" />
+        <option value="$PROJECT_DIR$/awj/awj/utils/usr_data.py" />
+        <option value="$PROJECT_DIR$/awj/awj/apps/PaymentOperation/views.py" />
+        <option value="$PROJECT_DIR$/awj/awj/apps/salesinvoice/views.py" />
+        <option value="$PROJECT_DIR$/awj/awj/utils/cust_data.py" />
+        <option value="$PROJECT_DIR$/awj/awj/utils/et_CACC_NO.py" />
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
       </list>
     </option>
   </component>
@@ -119,6 +187,10 @@
     <option name="width" value="1936" />
     <option name="height" value="1056" />
   </component>
+<<<<<<< HEAD
+=======
+  <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
   <component name="ProjectView">
     <navigator currentView="ProjectPane" proportions="" version="1">
       <flattenPackages />
@@ -135,7 +207,10 @@
     </navigator>
     <panes>
       <pane id="Scratches" />
+<<<<<<< HEAD
       <pane id="Scope" />
+=======
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
       <pane id="ProjectPane">
         <subPane>
           <PATH>
@@ -147,15 +222,31 @@
               <option name="myItemId" value="wanjia" />
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
             </PATH_ELEMENT>
+<<<<<<< HEAD
+          </PATH>
+        </subPane>
+      </pane>
+=======
+            <PATH_ELEMENT>
+              <option name="myItemId" value="awj" />
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+            </PATH_ELEMENT>
           </PATH>
         </subPane>
       </pane>
+      <pane id="Scope" />
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
     </panes>
   </component>
   <component name="PropertiesComponent">
     <property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" />
     <property name="last_opened_file_path" value="$USER_HOME$/Envs/ceshi/Scripts/python.exe" />
     <property name="WebServerToolWindowFactoryState" value="true" />
+<<<<<<< HEAD
+=======
+    <property name="ChangesBrowser.SHOW_FLATTEN" value="false" />
+    <property name="ToolWindowEvent Log.ShowToolbar" value="false" />
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
   </component>
   <component name="RecentsManager">
     <key name="MoveFile.RECENT_KEYS">
@@ -181,6 +272,7 @@
       </list>
     </option>
   </component>
+<<<<<<< HEAD
   <component name="RunManager" selected="Python.manage">
     <configuration default="false" name="lianxi" type="PythonConfigurationType" factoryName="Python" temporary="true">
       <option name="INTERPRETER_OPTIONS" value="" />
@@ -277,6 +369,9 @@
       <option name="EMULATE_TERMINAL" value="false" />
       <method />
     </configuration>
+=======
+  <component name="RunManager">
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
     <configuration default="true" type="DjangoTestsConfigurationType" factoryName="Django tests">
       <option name="INTERPRETER_OPTIONS" value="" />
       <option name="PARENT_ENVS" value="true" />
@@ -425,6 +520,7 @@
       <option name="_new_targetType" value="&quot;PATH&quot;" />
       <method />
     </configuration>
+<<<<<<< HEAD
     <list size="5">
       <item index="0" class="java.lang.String" itemvalue="Python.lianxi" />
       <item index="1" class="java.lang.String" itemvalue="Python.xixi" />
@@ -441,6 +537,8 @@
         <item index="4" class="java.lang.String" itemvalue="Python.lianxi" />
       </list>
     </recent_temporary>
+=======
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
   </component>
   <component name="ShelveChangesManager" show_recycled="false">
     <option name="remove_strategy" value="false" />
@@ -565,6 +663,7 @@
       <option name="project" value="LOCAL" />
       <updated>1572602570119</updated>
     </task>
+<<<<<<< HEAD
     <option name="localTasksCounter" value="17" />
     <servers />
   </component>
@@ -586,6 +685,52 @@
       <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.45770064" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+=======
+    <task id="LOCAL-00017" summary="调整银行编码判断">
+      <created>1573610372452</created>
+      <option name="number" value="00017" />
+      <option name="presentableId" value="LOCAL-00017" />
+      <option name="project" value="LOCAL" />
+      <updated>1573610372452</updated>
+    </task>
+    <task id="LOCAL-00018" summary="调整银行编码的">
+      <created>1573610965169</created>
+      <option name="number" value="00018" />
+      <option name="presentableId" value="LOCAL-00018" />
+      <option name="project" value="LOCAL" />
+      <updated>1573610965169</updated>
+    </task>
+    <option name="localTasksCounter" value="19" />
+    <servers />
+  </component>
+  <component name="TodoView" selected-index="2">
+    <todo-panel id="selected-file">
+      <is-autoscroll-to-source value="true" />
+    </todo-panel>
+    <todo-panel id="all">
+      <are-packages-shown value="true" />
+      <is-autoscroll-to-source value="true" />
+    </todo-panel>
+  </component>
+  <component name="ToolWindowManager">
+    <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
+    <layout>
+      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="FLOATING" visible="false" show_stripe_button="true" weight="0.32936078" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" x="22" y="368" width="1876" height="304" />
+      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32936078" sideWeight="0.50319827" order="7" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.11822126" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.329718" sideWeight="0.4968017" order="10" side_tool="false" content_ui="tabs" />
+      <window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
+      <window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.40628386" sideWeight="0.4978678" order="9" side_tool="false" content_ui="tabs" />
+      <window_info id="Remote Host" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.13113007" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25266525" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.45770064" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
+      <window_info id="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.23943663" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
@@ -593,22 +738,81 @@
       <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
     </layout>
+<<<<<<< HEAD
+=======
+    <layout-to-restore>
+      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="FLOATING" visible="false" show_stripe_button="true" weight="0.32936078" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" x="22" y="368" width="1876" height="304" />
+      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.23943663" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32936078" sideWeight="0.50319827" order="8" side_tool="false" content_ui="tabs" />
+      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.329718" sideWeight="0.4968017" order="11" side_tool="false" content_ui="tabs" />
+      <window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.11822126" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.4069264" sideWeight="0.4978678" order="10" side_tool="false" content_ui="tabs" />
+      <window_info id="Remote Host" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.13113007" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.45770064" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+      <window_info id="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+    </layout-to-restore>
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
   </component>
   <component name="TypeScriptGeneratedFilesManager">
     <option name="processedProjectFiles" value="true" />
   </component>
+<<<<<<< HEAD
+=======
+  <component name="Vcs.Log.Tabs.Properties">
+    <option name="TAB_STATES">
+      <map>
+        <entry key="MAIN">
+          <value>
+            <State>
+              <option name="RECENTLY_FILTERED_USER_GROUPS">
+                <collection />
+              </option>
+              <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
+                <collection />
+              </option>
+              <option name="COLUMN_ORDER">
+                <list>
+                  <option value="0" />
+                  <option value="1" />
+                  <option value="2" />
+                  <option value="3" />
+                </list>
+              </option>
+            </State>
+          </value>
+        </entry>
+      </map>
+    </option>
+  </component>
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
   <component name="VcsContentAnnotationSettings">
     <option name="myLimit" value="2678400000" />
   </component>
   <component name="VcsManagerConfiguration">
+<<<<<<< HEAD
     <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="true" />
     <option name="CHECK_CODE_CLEANUP_BEFORE_PROJECT_COMMIT" value="true" />
+=======
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
     <MESSAGE value="设置配置文件" />
     <MESSAGE value="项目配置完成" />
     <MESSAGE value="进货开票子应用" />
     <MESSAGE value="今天代码结束" />
     <MESSAGE value="今天代7点的码结束" />
     <MESSAGE value="调整银行编码判断" />
+<<<<<<< HEAD
     <MESSAGE value="代码结束" />
     <option name="LAST_COMMIT_MESSAGE" value="代码结束" />
     <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
@@ -618,6 +822,23 @@
   <component name="XDebuggerManager">
     <breakpoint-manager>
       <option name="time" value="22" />
+=======
+    <MESSAGE value="调整银行编码的" />
+    <MESSAGE value="qqq" />
+    <MESSAGE value="修改" />
+    <MESSAGE value="修改啊" />
+    <MESSAGE value="修改啊地方" />
+    <MESSAGE value="修改啊地方去" />
+    <MESSAGE value="修改啊地方去嗯嗯" />
+    <MESSAGE value="调整银行编码的&#10;&#10;Signed-off-by: 任翠亮 &lt;1244632764@qq.com&gt;" />
+    <MESSAGE value="调整银行编码的&#10;&#10;Signed-off-by: 任翠亮 &lt;1244632764@qq.com&gt;&#10;付广告费" />
+    <MESSAGE value="是二恶大V个" />
+    <option name="LAST_COMMIT_MESSAGE" value="是二恶大V个" />
+  </component>
+  <component name="XDebuggerManager">
+    <breakpoint-manager>
+      <option name="time" value="21" />
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
     </breakpoint-manager>
     <watches-manager>
       <configuration name="PythonConfigurationType">
@@ -626,6 +847,16 @@
     </watches-manager>
   </component>
   <component name="editorHistoryManager">
+<<<<<<< HEAD
+=======
+    <entry file="file://F:/python/03Django/02Django_上上项目/0610_day14/2_code/meiduo12/meiduo_mall/meiduo_mall/apps/carts/urls.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="108">
+          <caret line="4" column="46" lean-forward="true" selection-start-line="4" selection-start-column="46" selection-end-line="4" selection-end-column="46" />
+        </state>
+      </provider>
+    </entry>
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
     <entry file="file://F:/python/03Django/02Django_上上项目/0610_day14/2_code/meiduo12/meiduo_mall/meiduo_mall/apps/oauth/views.py">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="-2651">
@@ -734,6 +965,16 @@
         </state>
       </provider>
     </entry>
+<<<<<<< HEAD
+=======
+    <entry file="file://$PROJECT_DIR$/awj/awj/utils/response_code.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+        </state>
+      </provider>
+    </entry>
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
     <entry file="file://$PROJECT_DIR$/awj/awj/apps/salesinvoice/apps.py">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="135">
@@ -806,6 +1047,16 @@
         </state>
       </provider>
     </entry>
+<<<<<<< HEAD
+=======
+    <entry file="file://$PROJECT_DIR$/awj/awj/apps/stockinvoice/urls.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="108">
+          <caret line="4" column="50" lean-forward="false" selection-start-line="4" selection-start-column="50" selection-end-line="4" selection-end-column="50" />
+        </state>
+      </provider>
+    </entry>
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
     <entry file="file://$PROJECT_DIR$/qqq.txt" />
     <entry file="file://$USER_HOME$/Envs/ceshi/Lib/site-packages/django/http/response.py">
       <provider selected="true" editor-type-id="text-editor">
@@ -836,6 +1087,7 @@
         </state>
       </provider>
     </entry>
+<<<<<<< HEAD
     <entry file="file://$PROJECT_DIR$/awj/awj/utils/examine_ood.py">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="0">
@@ -882,11 +1134,54 @@
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="189">
           <caret line="8" column="7" lean-forward="true" selection-start-line="8" selection-start-column="7" selection-end-line="8" selection-end-column="7" />
+=======
+    <entry file="file://$PROJECT_DIR$/awj/awj/apps/salesinvoice/urls.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="189">
+          <caret line="8" column="1" lean-forward="false" selection-start-line="8" selection-start-column="1" selection-end-line="8" selection-end-column="1" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/awj/awj/utils/examine_ood.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="18" selection-end-column="24" />
+          <folding>
+            <marker date="1572003251822" expanded="true" signature="247:296" ph="SELECT COUNT... missing_value" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/awj/awj/utils/invoice_dh.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="270">
+          <caret line="12" column="32" lean-forward="true" selection-start-line="12" selection-start-column="32" selection-end-line="12" selection-end-column="32" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/awj/awj/utils/middleware.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="216">
+          <caret line="10" column="20" lean-forward="false" selection-start-line="10" selection-start-column="12" selection-end-line="10" selection-end-column="20" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/awj/awj/utils/usr_data.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="351">
+          <caret line="13" column="15" lean-forward="false" selection-start-line="13" selection-start-column="15" selection-end-line="13" selection-end-column="15" />
+          <folding>
+            <marker date="1573548547689" expanded="true" signature="217:258" ph="SELECT COUNT... SALM" />
+            <marker date="1573548547689" expanded="true" signature="338:402" ph="INSERT INTO SALM... " />
+          </folding>
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/awj/awj/apps/salesinvoice/views.py">
       <provider selected="true" editor-type-id="text-editor">
+<<<<<<< HEAD
         <state relative-caret-position="408">
           <caret line="307" column="25" lean-forward="false" selection-start-line="307" selection-start-column="25" selection-end-line="307" selection-end-column="25" />
         </state>
@@ -906,10 +1201,258 @@
           <folding>
             <marker date="1573548547689" expanded="true" signature="217:258" ph="SELECT COUNT... SALM" />
             <marker date="1573548547689" expanded="true" signature="338:402" ph="INSERT INTO SALM... " />
+=======
+        <state relative-caret-position="108">
+          <caret line="4" column="23" lean-forward="false" selection-start-line="4" selection-start-column="23" selection-end-line="4" selection-end-column="23" />
+          <folding>
+            <element signature="e#362#16281#0" expanded="false" />
+            <element signature="e#646#7113#0" expanded="false" />
+            <element signature="e#7176#13375#0" expanded="false" />
+            <element signature="e#16530#21717#0" expanded="false" />
+            <element signature="e#21780#26237#0" expanded="false" />
+            <element signature="e#26302#29111#0" expanded="false" />
+            <element signature="e#29212#29326#0" expanded="false" />
+            <element signature="e#29389#33952#0" expanded="false" />
+            <element signature="e#34015#37816#0" expanded="false" />
+            <element signature="e#37881#39543#0" expanded="false" />
+            <element signature="e#39588#56055#0" expanded="false" />
+            <marker date="1573610766267" expanded="true" signature="3790:3989" ph="INSERT INTO MF_PSS... " />
+            <marker date="1573610766267" expanded="true" signature="4283:4475" ph="INSERT INTO TF_PSS... " />
+            <marker date="1573610766267" expanded="true" signature="4624:4869" ph="INSERT INTO INV_NO... " />
+            <marker date="1573610766267" expanded="true" signature="5121:5320" ph="INSERT INTO MF_ARP... " />
+            <marker date="1573610766267" expanded="true" signature="5605:5875" ph="INSERT INTO MF_LZ... " />
+            <marker date="1573610766267" expanded="true" signature="6239:6458" ph="INSERT INTO TF_LZ... " />
+            <marker date="1573610766267" expanded="true" signature="6622:6733" ph="UPDATE TF_PS... " />
+            <marker date="1573610766267" expanded="true" signature="10977:11090" ph="UPDATE MF_PS... " />
+            <marker date="1573610766267" expanded="true" signature="11274:11392" ph="UPDATE TF_PS... " />
+            <marker date="1573610766267" expanded="true" signature="11607:11792" ph="UPDATE INV_N... " />
+            <marker date="1573610766267" expanded="true" signature="12016:12134" ph="UPDATE MF_AR... " />
+            <marker date="1573610766267" expanded="true" signature="12377:12509" ph="UPDATE MF_LZ... " />
+            <marker date="1573610766267" expanded="true" signature="12742:12817" ph="UPDATE TF_LZ... " />
+            <marker date="1573610766267" expanded="true" signature="12926:12998" ph="UPDATE TF_PS... " />
+            <marker date="1573610766267" expanded="true" signature="14784:14821" ph="SELECT COUNT... missing_value" />
+            <marker date="1573610766267" expanded="true" signature="15184:15232" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="15317:15365" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="15448:15498" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="15579:15630" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="15714:15762" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="15858:15906" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="18242:18285" ph="SELECT COUNT... MF_ARP" />
+            <marker date="1573610766267" expanded="true" signature="18487:18538" ph="SELECT ISNUL... BACC" />
+            <marker date="1573610766267" expanded="true" signature="18793:19053" ph="INSERT INTO TF_MON... " />
+            <marker date="1573610766267" expanded="true" signature="19345:19482" ph="INSERT INTO TC_MON... " />
+            <marker date="1573610766267" expanded="true" signature="19642:19764" ph="INSERT INTO MF_MON... " />
+            <marker date="1573610766267" expanded="true" signature="19913:20124" ph="INSERT INTO MF_BAC... " />
+            <marker date="1573610766267" expanded="true" signature="20436:20574" ph="INSERT INTO TF_BAC... " />
+            <marker date="1573610766267" expanded="true" signature="20725:20830" ph="UPDATE MF_AR... " />
+            <marker date="1573610766267" expanded="true" signature="21089:21137" ph="SELECT ISNUL... MF_ARP" />
+            <marker date="1573610766267" expanded="true" signature="21238:21284" ph="UPDATE MF_AR... " />
+            <marker date="1573610766267" expanded="true" signature="21337:21393" ph="UPDATE MF_PS... " />
+            <marker date="1573610766267" expanded="true" signature="23325:23368" ph="SELECT COUNT... TC_MON" />
+            <marker date="1573610766267" expanded="true" signature="23573:23613" ph="SELECT Acc_N... BACC" />
+            <marker date="1573610766267" expanded="true" signature="23817:23872" ph="SELECT AMTN_... TF_MON" />
+            <marker date="1573610766267" expanded="true" signature="24051:24168" ph="UPDATE TF_MO... " />
+            <marker date="1573610766267" expanded="true" signature="24303:24370" ph="UPDATE TC_MO... " />
+            <marker date="1573610766267" expanded="true" signature="24460:24543" ph="UPDATE MF_MO... " />
+            <marker date="1573610766267" expanded="true" signature="24703:24788" ph="UPDATE MF_BA... " />
+            <marker date="1573610766267" expanded="true" signature="24991:25055" ph="UPDATE TF_BA... " />
+            <marker date="1573610766267" expanded="true" signature="25251:25358" ph="UPDATE MF_AR... " />
+            <marker date="1573610766267" expanded="true" signature="25513:25598" ph="SELECT CAST(... MF_ARP" />
+            <marker date="1573610766267" expanded="true" signature="25729:25791" ph="UPDATE MF_AR... " />
+            <marker date="1573610766267" expanded="true" signature="25844:25915" ph="UPDATE MF_PS... " />
+            <marker date="1573610766267" expanded="true" signature="26801:26867" ph="SELECT ISNUL... TF_MON" />
+            <marker date="1573610766267" expanded="true" signature="26958:27012" ph="SELECT ARP_N... TC_MON" />
+            <marker date="1573610766267" expanded="true" signature="27154:27209" ph="SELECT AMTN_... TF_MON" />
+            <marker date="1573610766267" expanded="true" signature="27367:27415" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="27489:27537" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="27611:27658" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="27734:27783" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="27871:27920" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="28040:28079" ph="SELECT AMTN MF_ARP" />
+            <marker date="1573610766267" expanded="true" signature="28235:28285" ph="UPDATE MF_AR... " />
+            <marker date="1573610766267" expanded="true" signature="28437:28539" ph="UPDATE MF_AR... " />
+            <marker date="1573610766267" expanded="true" signature="28634:28680" ph="UPDATE MF_AR... " />
+            <marker date="1573610766267" expanded="true" signature="28729:28785" ph="UPDATE MF_PS... " />
+            <marker date="1573610766267" expanded="true" signature="31449:31500" ph="SELECT ISNUL... BACC" />
+            <marker date="1573610766267" expanded="true" signature="31781:32056" ph="INSERT INTO TF_MON... " />
+            <marker date="1573610766267" expanded="true" signature="32422:32568" ph="INSERT INTO MF_MON... " />
+            <marker date="1573610766267" expanded="true" signature="32731:32958" ph="INSERT INTO MF_BAC... " />
+            <marker date="1573610766267" expanded="true" signature="33379:33531" ph="INSERT INTO TF_BAC... " />
+            <marker date="1573610766267" expanded="true" signature="36286:36326" ph="SELECT Acc_N... BACC" />
+            <marker date="1573610766267" expanded="true" signature="36577:36687" ph="UPDATE TF_MO... " />
+            <marker date="1573610766267" expanded="true" signature="36877:36926" ph="UPDATE MF_MO... " />
+            <marker date="1573610766267" expanded="true" signature="37058:37138" ph="UPDATE MF_BA... " />
+            <marker date="1573610766267" expanded="true" signature="37337:37396" ph="UPDATE TF_BA... " />
+            <marker date="1573610766267" expanded="true" signature="38816:38863" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="38937:38985" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="39061:39094" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="39182:39215" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="42676:42715" ph="SELECT AMTN MF_ARP" />
+            <marker date="1573610766267" expanded="true" signature="43101:43234" ph="INSERT INTO TF_MON1... " />
+            <marker date="1573610766267" expanded="true" signature="43325:43566" ph="INSERT INTO TF_MON... " />
+            <marker date="1573610766267" expanded="true" signature="44038:44181" ph="INSERT INTO TC_MON... " />
+            <marker date="1573610766267" expanded="true" signature="44390:44495" ph="UPDATE MF_AR... " />
+            <marker date="1573610766267" expanded="true" signature="44651:44720" ph="SELECT CAST(... MF_ARP" />
+            <marker date="1573610766267" expanded="true" signature="44875:44921" ph="UPDATE MF_AR... " />
+            <marker date="1573610766267" expanded="true" signature="44979:45050" ph="UPDATE MF_PS... " />
+            <marker date="1573610766267" expanded="true" signature="45194:45298" ph="INSERT INTO MF_MON... " />
+            <marker date="1573610766267" expanded="true" signature="45480:45557" ph="UPDATE TF_MO... " />
+            <marker date="1573610766267" expanded="true" signature="45729:45838" ph="SELECT ISNUL... TF_MON" />
+            <marker date="1573610766267" expanded="true" signature="45982:46040" ph="UPDATE TF_MO... " />
+            <marker date="1573610766267" expanded="true" signature="48898:48937" ph="SELECT AMTN MF_ARP" />
+            <marker date="1573610766267" expanded="true" signature="49257:49317" ph="UPDATE TF_MO... " />
+            <marker date="1573610766267" expanded="true" signature="49421:49528" ph="UPDATE TF_MO... " />
+            <marker date="1573610766267" expanded="true" signature="49870:49923" ph="SELECT ISNUL... TC_MON" />
+            <marker date="1573610766267" expanded="true" signature="50151:50210" ph="UPDATE TC_MO... " />
+            <marker date="1573610766267" expanded="true" signature="50564:50632" ph="SELECT ISNUL... MF_ARP" />
+            <marker date="1573610766267" expanded="true" signature="50833:50944" ph="UPDATE MF_AR... " />
+            <marker date="1573610766267" expanded="true" signature="51115:51184" ph="SELECT CAST(... MF_ARP" />
+            <marker date="1573610766267" expanded="true" signature="51293:51339" ph="UPDATE MF_AR... " />
+            <marker date="1573610766267" expanded="true" signature="51397:51468" ph="UPDATE MF_PS... " />
+            <marker date="1573610766267" expanded="true" signature="51558:51617" ph="UPDATE MF_MO... " />
+            <marker date="1573610766267" expanded="true" signature="51724:51804" ph="UPDATE TF_MO... " />
+            <marker date="1573610766267" expanded="true" signature="51967:52076" ph="SELECT ISNUL... TF_MON" />
+            <marker date="1573610766267" expanded="true" signature="52221:52279" ph="UPDATE TF_MO... " />
+            <marker date="1573610766267" expanded="true" signature="53469:53535" ph="SELECT ISNUL... TF_MON" />
+            <marker date="1573610766267" expanded="true" signature="53638:53693" ph="SELECT IRP_N... TF_MON1" />
+            <marker date="1573610766267" expanded="true" signature="53786:53863" ph="UPDATE TF_MO... " />
+            <marker date="1573610766267" expanded="true" signature="53976:54030" ph="SELECT ARP_N... TC_MON" />
+            <marker date="1573610766267" expanded="true" signature="54417:54485" ph="SELECT ISNUL... MF_ARP" />
+            <marker date="1573610766267" expanded="true" signature="54683:54788" ph="UPDATE MF_AR... " />
+            <marker date="1573610766267" expanded="true" signature="54911:54980" ph="SELECT CAST(... MF_ARP" />
+            <marker date="1573610766267" expanded="true" signature="55086:55132" ph="UPDATE MF_AR... " />
+            <marker date="1573610766267" expanded="true" signature="55187:55243" ph="UPDATE MF_PS... " />
+            <marker date="1573610766267" expanded="true" signature="55326:55374" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="55448:55495" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="55569:55617" ph="DELETE FROM " />
+            <marker date="1573610766267" expanded="true" signature="55690:55737" ph="DELETE FROM " />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/awj/awj/apps/stockinvoice/views.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="452">
+          <caret line="31" column="27" lean-forward="false" selection-start-line="31" selection-start-column="27" selection-end-line="31" selection-end-column="27" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/awj/awj/apps/PaymentOperation/views.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="27">
+          <caret line="171" column="27" lean-forward="false" selection-start-line="171" selection-start-column="27" selection-end-line="171" selection-end-column="27" />
+          <folding>
+            <element signature="e#425#1177#0" expanded="false" />
+            <element signature="e#1241#8296#0" expanded="false" />
+            <element signature="e#8358#14012#0" expanded="false" />
+            <element signature="e#14077#17838#0" expanded="false" />
+            <element signature="e#17918#18009#0" expanded="false" />
+            <element signature="e#18072#23921#0" expanded="false" />
+            <element signature="e#23983#28838#0" expanded="false" />
+            <element signature="e#28903#30699#0" expanded="false" />
+            <element signature="e#30807#31619#0" expanded="false" />
+            <element signature="e#31683#40237#0" expanded="false" />
+            <element signature="e#40299#47718#0" expanded="false" />
+            <element signature="e#47783#51347#0" expanded="false" />
+            <marker date="1573610766693" expanded="true" signature="907:955" ph="SELECT AMTN MF_MON" />
+            <marker date="1573610766693" expanded="true" signature="2917:2960" ph="SELECT COUNT... MF_ARP" />
+            <marker date="1573610766693" expanded="true" signature="3163:3214" ph="SELECT ISNUL... BACC" />
+            <marker date="1573610766693" expanded="true" signature="3596:3854" ph="INSERT INTO TF_MON... " />
+            <marker date="1573610766693" expanded="true" signature="4802:4939" ph="INSERT INTO TC_MON... " />
+            <marker date="1573610766693" expanded="true" signature="5355:5477" ph="INSERT INTO MF_MON... " />
+            <marker date="1573610766693" expanded="true" signature="5747:5958" ph="INSERT INTO MF_BAC... " />
+            <marker date="1573610766693" expanded="true" signature="6787:6925" ph="INSERT INTO TF_BAC... " />
+            <marker date="1573610766693" expanded="true" signature="7283:7388" ph="UPDATE MF_AR... " />
+            <marker date="1573610766693" expanded="true" signature="7645:7693" ph="SELECT ISNUL... MF_ARP" />
+            <marker date="1573610766693" expanded="true" signature="7823:7869" ph="UPDATE MF_AR... " />
+            <marker date="1573610766693" expanded="true" signature="7921:7977" ph="UPDATE MF_PS... " />
+            <marker date="1573610766693" expanded="true" signature="10033:10076" ph="SELECT COUNT... TC_MON" />
+            <marker date="1573610766693" expanded="true" signature="10279:10319" ph="SELECT Acc_N... BACC" />
+            <marker date="1573610766693" expanded="true" signature="10523:10578" ph="SELECT AMTN_... TF_MON" />
+            <marker date="1573610766693" expanded="true" signature="10736:10853" ph="UPDATE TF_MO... " />
+            <marker date="1573610766693" expanded="true" signature="11168:11235" ph="UPDATE TC_MO... " />
+            <marker date="1573610766693" expanded="true" signature="11551:11634" ph="UPDATE MF_MO... " />
+            <marker date="1573610766693" expanded="true" signature="11896:11981" ph="UPDATE MF_BA... " />
+            <marker date="1573610766693" expanded="true" signature="12490:12554" ph="UPDATE TF_BA... " />
+            <marker date="1573610766693" expanded="true" signature="12887:12994" ph="UPDATE MF_AR... " />
+            <marker date="1573610766693" expanded="true" signature="13285:13363" ph="SELECT CAST(... MF_ARP" />
+            <marker date="1573610766693" expanded="true" signature="13504:13566" ph="UPDATE MF_AR... " />
+            <marker date="1573610766693" expanded="true" signature="13619:13690" ph="UPDATE MF_PS... " />
+            <marker date="1573610766693" expanded="true" signature="14870:14936" ph="SELECT ISNUL... TF_MON" />
+            <marker date="1573610766693" expanded="true" signature="15027:15081" ph="SELECT ARP_N... TC_MON" />
+            <marker date="1573610766693" expanded="true" signature="15223:15278" ph="SELECT AMTN_... TF_MON" />
+            <marker date="1573610766693" expanded="true" signature="15528:15576" ph="DELETE FROM " />
+            <marker date="1573610766693" expanded="true" signature="15646:15694" ph="DELETE FROM " />
+            <marker date="1573610766693" expanded="true" signature="16066:16113" ph="DELETE FROM " />
+            <marker date="1573610766693" expanded="true" signature="16421:16470" ph="DELETE FROM " />
+            <marker date="1573610766693" expanded="true" signature="16556:16605" ph="DELETE FROM " />
+            <marker date="1573610766693" expanded="true" signature="16726:16765" ph="SELECT AMTN MF_ARP" />
+            <marker date="1573610766693" expanded="true" signature="16965:17015" ph="UPDATE MF_AR... " />
+            <marker date="1573610766693" expanded="true" signature="17166:17268" ph="UPDATE MF_AR... " />
+            <marker date="1573610766693" expanded="true" signature="17363:17409" ph="UPDATE MF_AR... " />
+            <marker date="1573610766693" expanded="true" signature="17458:17514" ph="UPDATE MF_PS... " />
+            <marker date="1573610766693" expanded="true" signature="20087:20136" ph="SELECT COUNT... missing_value" />
+            <marker date="1573610766693" expanded="true" signature="20242:20293" ph="SELECT ISNUL... BACC" />
+            <marker date="1573610766693" expanded="true" signature="20521:20780" ph="INSERT INTO TF_MON... " />
+            <marker date="1573610766693" expanded="true" signature="21706:21836" ph="INSERT INTO MF_MON... " />
+            <marker date="1573610766693" expanded="true" signature="22116:22327" ph="INSERT INTO MF_BAC... " />
+            <marker date="1573610766693" expanded="true" signature="23205:23341" ph="INSERT INTO TF_BAC... " />
+            <marker date="1573610766693" expanded="true" signature="26253:26293" ph="SELECT Acc_N... BACC" />
+            <marker date="1573610766693" expanded="true" signature="26663:26773" ph="UPDATE TF_MO... " />
+            <marker date="1573610766693" expanded="true" signature="27274:27323" ph="UPDATE MF_MO... " />
+            <marker date="1573610766693" expanded="true" signature="27602:27682" ph="UPDATE MF_BA... " />
+            <marker date="1573610766693" expanded="true" signature="28197:28256" ph="UPDATE TF_BA... " />
+            <marker date="1573610766693" expanded="true" signature="29980:30027" ph="DELETE FROM " />
+            <marker date="1573610766693" expanded="true" signature="30101:30149" ph="DELETE FROM " />
+            <marker date="1573610766693" expanded="true" signature="30224:30257" ph="DELETE FROM " />
+            <marker date="1573610766693" expanded="true" signature="30342:30375" ph="DELETE FROM " />
+            <marker date="1573610766693" expanded="true" signature="31178:31228" ph="update cust " />
+            <marker date="1573610766693" expanded="true" signature="31267:31323" ph="insert into cust... " />
+            <marker date="1573610766693" expanded="true" signature="34464:34503" ph="SELECT AMTN MF_ARP" />
+            <marker date="1573610766693" expanded="true" signature="34891:35008" ph="INSERT INTO TF_MON1... " />
+            <marker date="1573610766693" expanded="true" signature="35218:35459" ph="INSERT INTO TF_MON... " />
+            <marker date="1573610766693" expanded="true" signature="36391:36534" ph="INSERT INTO TC_MON... " />
+            <marker date="1573610766693" expanded="true" signature="37314:37419" ph="UPDATE MF_AR... " />
+            <marker date="1573610766693" expanded="true" signature="37956:38025" ph="SELECT CAST(... MF_ARP" />
+            <marker date="1573610766693" expanded="true" signature="38180:38226" ph="UPDATE MF_AR... " />
+            <marker date="1573610766693" expanded="true" signature="38284:38355" ph="UPDATE MF_PS... " />
+            <marker date="1573610766693" expanded="true" signature="38475:38579" ph="INSERT INTO MF_MON... " />
+            <marker date="1573610766693" expanded="true" signature="38961:39038" ph="UPDATE TF_MO... " />
+            <marker date="1573610766693" expanded="true" signature="39214:39323" ph="SELECT ISNUL... TF_MON" />
+            <marker date="1573610766693" expanded="true" signature="39467:39525" ph="UPDATE TF_MO... " />
+            <marker date="1573610766693" expanded="true" signature="42590:42629" ph="SELECT AMTN MF_ARP" />
+            <marker date="1573610766693" expanded="true" signature="42931:42991" ph="UPDATE TF_MO... " />
+            <marker date="1573610766693" expanded="true" signature="43195:43302" ph="UPDATE TF_MO... " />
+            <marker date="1573610766693" expanded="true" signature="43924:43977" ph="SELECT ISNUL... TC_MON" />
+            <marker date="1573610766693" expanded="true" signature="44154:44213" ph="UPDATE TC_MO... " />
+            <marker date="1573610766693" expanded="true" signature="44870:44938" ph="SELECT ISNUL... MF_ARP" />
+            <marker date="1573610766693" expanded="true" signature="45138:45249" ph="UPDATE MF_AR... " />
+            <marker date="1573610766693" expanded="true" signature="45570:45639" ph="SELECT CAST(... MF_ARP" />
+            <marker date="1573610766693" expanded="true" signature="45794:45840" ph="UPDATE MF_AR... " />
+            <marker date="1573610766693" expanded="true" signature="45898:45969" ph="UPDATE MF_PS... " />
+            <marker date="1573610766693" expanded="true" signature="46100:46159" ph="UPDATE MF_MO... " />
+            <marker date="1573610766693" expanded="true" signature="46466:46546" ph="UPDATE TF_MO... " />
+            <marker date="1573610766693" expanded="true" signature="46729:46838" ph="SELECT ISNUL... TF_MON" />
+            <marker date="1573610766693" expanded="true" signature="47004:47062" ph="UPDATE TF_MO... " />
+            <marker date="1573610766693" expanded="true" signature="48589:48655" ph="SELECT ISNUL... TF_MON" />
+            <marker date="1573610766693" expanded="true" signature="48757:48812" ph="SELECT IRP_N... TF_MON1" />
+            <marker date="1573610766693" expanded="true" signature="48905:48982" ph="UPDATE TF_MO... " />
+            <marker date="1573610766693" expanded="true" signature="49095:49149" ph="SELECT ARP_N... TC_MON" />
+            <marker date="1573610766693" expanded="true" signature="49536:49604" ph="SELECT ISNUL... MF_ARP" />
+            <marker date="1573610766693" expanded="true" signature="49802:49907" ph="UPDATE MF_AR... " />
+            <marker date="1573610766693" expanded="true" signature="50205:50274" ph="SELECT CAST(... MF_ARP" />
+            <marker date="1573610766693" expanded="true" signature="50380:50426" ph="UPDATE MF_AR... " />
+            <marker date="1573610766693" expanded="true" signature="50481:50537" ph="UPDATE MF_PS... " />
+            <marker date="1573610766693" expanded="true" signature="50619:50667" ph="DELETE FROM " />
+            <marker date="1573610766693" expanded="true" signature="50740:50787" ph="DELETE FROM " />
+            <marker date="1573610766693" expanded="true" signature="50860:50907" ph="DELETE FROM " />
+            <marker date="1573610766693" expanded="true" signature="50979:51026" ph="DELETE FROM " />
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
           </folding>
         </state>
       </provider>
     </entry>
+<<<<<<< HEAD
     <entry file="file://$PROJECT_DIR$/awj/awj/apps/stockinvoice/views.py">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="-54">
@@ -946,6 +1489,40 @@
           <folding>
             <marker date="1573699746818" expanded="true" signature="288:329" ph="SELECT COUNT... CUST" />
             <marker date="1573699746818" expanded="true" signature="430:867" ph="INSERT INTO CUST... " />
+=======
+    <entry file="file://$PROJECT_DIR$/awj/awj/apps/PaymentOperation/urls.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="108">
+          <caret line="5" column="29" lean-forward="false" selection-start-line="5" selection-start-column="11" selection-end-line="5" selection-end-column="29" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/awj/awj/setting/dev.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="405">
+          <caret line="51" column="45" lean-forward="false" selection-start-line="51" selection-start-column="45" selection-end-line="51" selection-end-column="45" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/awj/awj/utils/cust_data.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="81">
+          <caret line="3" column="7" lean-forward="false" selection-start-line="3" selection-start-column="7" selection-end-line="3" selection-end-column="7" />
+          <folding>
+            <marker date="1573612659634" expanded="true" signature="287:328" ph="SELECT COUNT... CUST" />
+            <marker date="1573612659634" expanded="true" signature="414:523" ph="INSERT INTO CUST... " />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/awj/awj/utils/et_CACC_NO.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="81">
+          <caret line="3" column="19" lean-forward="false" selection-start-line="3" selection-start-column="19" selection-end-line="3" selection-end-column="19" />
+          <folding>
+            <marker date="1573612833449" expanded="true" signature="168:208" ph="SELECT COUNT... BACC" />
+            <marker date="1573612833449" expanded="true" signature="168:210" ph="SELECT COUNT... missing_value" />
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
           </folding>
         </state>
       </provider>

+ 1067 - 0
awj/awj/apps/PaymentOperation/views.py

@@ -1,3 +1,4 @@
+<<<<<<< HEAD
 import json
 import traceback
 
@@ -1121,3 +1122,1069 @@ class ExpectedPtOperationView(View):
 
 
 
+=======
+import datetime
+import json
+import re
+
+from django import http
+from django.db import connection
+from django.db import transaction
+# Create your views here.
+from django.views import View
+
+from utils.cust_data import customer_data
+from utils.et_CACC_NO import et_CACC_NO
+from utils.examine_ood import examine_ood
+from utils.usr_data import usr_data
+
+
+# 付款作业
+class PaymentOperationView(View):
+    def get(self,request):
+        a='TF_MON'
+        b='RP_NO'
+        c='PT20191015' #为0.000
+        # sql="SELECT COUNT(*) FROM %s WHERE %s='%s' "%(a,b,c)
+        # print(sql)
+        with connection.cursor() as cursor:
+            # cursor.execute("INSERT INTO CUST(CUS_NO,[NAME])VALUES ('QQ12345',%s)",[a])
+            # cursor.execute("UPDATE PRDT SET NAME='呜呜呜呜' where prd_no = %s", [a])
+            # cursor.execute("select * from prdt where prd_no = %s", [a])
+            row_AMTN_MF_MON = cursor.execute("""SELECT AMTN FROM MF_MON WHERE RP_NO='PT9A210001'""").fetchall()[0][0]
+            # row_ZL_NO = cursor.execute(sql).fetchall()[0][0]
+            print(float(row_AMTN_MF_MON))
+        context={
+            'a':'get付款作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def post(self, request):
+
+        # 获取参数
+        RP_NO = request.POST.get("RP_NO")  #付款单号         字符类型
+        RP_DD = request.POST.get("RP_DD")  #付款日期            字符类型
+        CUS_NO = request.POST.get("CUS_NO")  #付款客户编码        字符类型
+        AMTN_BC = request.POST.get("AMTN_BC")  #付款金额            数字类型
+        CACC_NO = request.POST.get("CACC_NO")  #付款银行编码          字符类型
+        USR = request.POST.get("USR")  #制单人编码                   字符类型
+        USR_NAME = request.POST.get("USR_NAME")  #制单人姓名         字符类型
+        MF_LZ1 = request.POST.get("MF_LZ1")  #进货开票单号         字符类型
+
+        # 判断单号的合法性
+        if RP_NO[:3] != 'PTF' or len(RP_NO) != 10:
+            return http.HttpResponseForbidden('付款单号输入不合法,单号必须是PTF开头且长度必须是10位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入付款单号')
+        # //判断有没有输入银行账号
+        sum_CACC_NO = et_CACC_NO(CACC_NO)
+        if sum_CACC_NO == 'NO':
+            return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMTN_BC)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','2')
+        if row_ZL_NO > 0:
+            return http.HttpResponseForbidden('付款单号已存在')
+
+        # 判断用户是否存在,不存在则创建
+        row_usr = usr_data(USR, USR_NAME,datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
+        with connection.cursor() as cursor:
+
+            MF_LZ1_NO = cursor.execute("""SELECT COUNT(*) FROM MF_ARP WHERE ARP_NO=%s""", ['AP' + MF_LZ1[2::]]).fetchall()[0][0]
+            if MF_LZ1_NO<=0:
+                return http.HttpResponseForbidden('开票单号不存在')
+
+            # 获取银行账号的会计科目
+            Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+            if Acc_No_km == '':
+                return http.HttpResponseForbidden('银行会计科目不存在')
+            sid = transaction.savepoint()  #开启事物
+            try:
+
+                # cursor.execute("""UPDATE TF_PSS SET AMT_FP=%s,AMTN_NET_FP=%s WHERE PS_NO=%s""",[AMT, AMT, 'PC' + ZL_NO[2::]])
+                #插入付款单表头
+                cursor.execute("""INSERT INTO TF_MON(IRP_ID,RP_NO,ITM,RP_ID,CLS_ID,RP_DD,CUS_NO,INCLUDESON,AMTN_BC,AMTN_CLS,BC_NO,CACC_NO,EXC_RTO,DEP,USR,CHK_MAN,CLS_DATE,SYS_DATE,IEA_ID,IOR_ID,SK_TYPE)
+              VALUES('F',%s,1,2,'T',%s,%s,'F',%s,%s,%s,%s,1,'0000',%s,%s,%s,%s,'F','F',1)""",
+              [RP_NO, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CUS_NO ,AMTN_BC,AMTN_BC,'BT'+RP_NO[2::],CACC_NO,USR,USR,datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),
+              datetime.datetime.strptime(RP_DD, '%Y-%m-%d')])
+                # RP_NO   付款单号  RP_NO
+                #RP_DD    付款日期   datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                #CUS_NO   付款客户编码    CUS_NO
+                #AMTN_BC    付款金额     AMTN_BC
+                #AMTN_CLS    冲款金额      AMTN_CLS
+                #BC_NO      账户收支单号
+                #CACC_NO    'BT'+RP_NO[2::]
+                #CACC_NO        付款银行编码
+                #USR   制单人      USR
+                #CHK_MAN   审核人      USR
+                #CLS_DATE    制单时间       datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                #CLS_DATE       审核时间        datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+
+                # 插入付款单表身-------------改CUR_ID  RMB
+                cursor.execute("""INSERT INTO TC_MON(RP_ID,RP_NO,ITM,ITM2,ARP_NO,AMTN_CLS,ARP_OPN_ID,RP_DD,CUS_NO,PRE_ITM)values
+                (2,%s,1,1,%s,%s,2,%s,%s,1)""",
+                [RP_NO, 'AP'+MF_LZ1[2::], AMTN_BC,datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),CUS_NO])
+                # RP_NO   付款单号  RP_NO
+                #ARP_NO   立账单号      MF_LZ1
+                #AMTN_CLS  冲款金额  AMTN_BC
+                #RP_DD  冲款时间    datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                #CUS_NO   冲款客户      CUS_NO
+
+                # 插入回写冲款金额表
+                cursor.execute("""INSERT INTO MF_MON(RP_ID,RP_NO,RP_DD,DEP,AMTN,AMTN_ARP,AMTN_REST,FJ_NUM)VALUES
+                (2,%s,%s,'0000',%s,%s,%s,0)""",[RP_NO,datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), AMTN_BC,AMTN_BC,AMTN_BC])
+                #RP_NO  付款单号  RP_NO
+                #AMTN   冲款金额
+                #AMTN_ARP  总金额
+                #AMTN_REST
+
+                # 插入账户收支单表头
+                cursor.execute("""INSERT INTO MF_BAC(BB_ID,BB_NO,BB_DD,BACC_NO,ACC_NO,DEP,BIL_NO,EXC_RTO,AMTN,USR,CHK_MAN,OPN_ID,CLS_DATE,SYS_DATE,BIL_ID_N,BIL_NO_N)VALUES
+                ('BT',%s,%s,%s,%s,'0000',%s,1,%s,%s,%s,'F',%s,%s,'PT',%s)""",
+                ['BT'+RP_NO[2::], datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CACC_NO,Acc_No_km,'PT'+RP_NO,-float(AMTN_BC),USR,USR,datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                ,datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),RP_NO])
+                #BB_NO  账户收支单单号  'BT'+RP_NO[2::]
+                #BB_DD   账户收支单日期  RP_NO[2::], datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                # BACC_NO  银行账户代号
+                #ACC_NO  会计科目      待定,需要会计确定自动取银行账号里面的会计科目
+                #BIL_NO  来源单号   'PT'+RP_NO
+                #AMTN 金额   付款是负数,收款是正数      -float(AMTN_BC)
+                #USR  制单人       USR
+                #  CHK_MAN  审核人     USR
+                #CLS_DATE  审核日期
+                # SYS_DATE  录入日期
+                #BIL_NO_N  来源单号
+
+                # 插入账户收支单表身
+                cursor.execute("""INSERT INTO TF_BAC(BB_ID,BB_NO,ITM,BB_DD,EXC_RTO,AMTN,DEP,CUS_NO,ADD_ID,PRE_ITM)values
+                ('BT',%s,1,%s,1,%s,'0000',%s,'-',1)""",['BT'+RP_NO[2::], datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), AMTN_BC, CUS_NO])
+                # BB_NO  账户收支单号  'BT'+RP_NO[2::]
+                # BB_DD  账户收支单日期    datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                #AMTN   金额      AMTN_BC
+                #CUS_NO  客户编码   CUS_NO
+
+                #回写立账单的数据
+                cursor.execute("""UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)+%s,AMT=ISNULL(AMTN,0)-ISNULL(AMTN_RCV,0)-%s WHERE BIL_NO=%s""",[AMTN_BC, AMTN_BC,MF_LZ1])
+                # AMTN_RCV   已冲金额     ISNULL(AMTN_RCV,0)+%s
+                # AMT   未冲金额  ISNULL(AMT,0)-%s
+                # BIL_NO  开票单号
+
+                #如果单据已经冲完,结案掉立账单,还有进货的立账结案标识
+                row_AMT = cursor.execute("SELECT ISNULL(AMT,0) FROM MF_ARP WHERE BIL_NO=%s", [MF_LZ1]).fetchall()[0][0]
+                print(row_AMT)
+                if row_AMT<=0:
+                    cursor.execute("""UPDATE MF_ARP SET CLOSE_ID='T' WHERE BIL_NO=%s""",[MF_LZ1])
+                    cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='T',CLSLZ='T' WHERE PS_NO=%s""",['PC'+MF_LZ1[2::]])
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("新增付款单sql语句执行异常")
+            transaction.savepoint_commit(sid)
+        context = {
+            'a': 'post付款作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def put(self, request):
+        req_data = json.loads(request.body.decode())
+        # 获取参数
+        RP_NO = req_data.get("RP_NO")  #付款单号         字符类型
+        RP_DD = req_data.get("RP_DD")  #付款日期            字符类型
+        AMTN_BC = req_data.get("AMTN_BC")  #付款金额            数字类型
+        CACC_NO = req_data.get("CACC_NO")  #付款银行编码          字符类型
+        MF_LZ1 = req_data.get("MF_LZ1")  #进货开票单号         字符类型
+        UP_DD = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  #修改时间
+        # {
+        #     "RP_NO":"PT9A200001",
+        #     "RP_DD":"2019-10-20",
+        #     "AMTN_BC":199,
+        #     "CACC_NO":"01",
+        #     "MF_LZ1":"LP9A170002"
+        # }
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入收款单号')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMTN_BC)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','2')
+        if row_ZL_NO <= 0:
+            return http.HttpResponseForbidden('付款单号不存在')
+        # //判断有没有输入银行账号
+        sum_CACC_NO = et_CACC_NO(CACC_NO)
+        if sum_CACC_NO == 'NO':
+            return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
+
+        # 付款单不能修改客户
+        # # 判断用户是否存在,不存在则创建
+        # row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
+        with connection.cursor() as cursor:
+
+            # 判断开票单号是否存在
+            MF_LZ1_NO = cursor.execute("""SELECT COUNT(*) FROM TC_MON WHERE ARP_NO=%s""", ['AP' + MF_LZ1[2::]]).fetchall()[0][0]
+
+            if MF_LZ1_NO<=0:
+                return http.HttpResponseForbidden('开票单号不存在')
+            # 获取银行账号的会计科目
+            Acc_No_km = cursor.execute("""SELECT Acc_No FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+            if Acc_No_km == '':
+                return http.HttpResponseForbidden('银行会计科目不存在')
+
+            # 缓存之前冲款的金额用于回写立账冲款数据
+            row_AMTN = cursor.execute("""SELECT AMTN_BC FROM TF_MON WHERE RP_NO=%s AND RP_ID='2'""", [RP_NO]).fetchall()[0][0]
+
+            sid = transaction.savepoint()  # 开启事物
+            try:
+                #修改付款单表头
+                cursor.execute("""UPDATE TF_MON SET RP_DD=%s,AMTN_BC=%s,CACC_NO=%s,MODIFY_DD=%s,MODIFY_MAN=USR,AMTN_CLS=%s WHERE RP_NO=%s AND RP_ID='2'""",[RP_DD, AMTN_BC, CACC_NO,UP_DD,AMTN_BC,RP_NO])
+                # RP_NO   付款单号  RP_NO
+                # RP_DD    付款日期   datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                # AMTN_BC    付款金额     AMTN_BC
+                # CACC_NO        付款银行编码
+                # 修改付款单表身
+                cursor.execute("""UPDATE TC_MON SET RP_DD=%s,AMTN_CLS=%s WHERE RP_NO=%s AND RP_ID='2'""",[RP_DD, AMTN_BC, RP_NO])
+                # RP_NO   付款单号  RP_NO
+                # ARP_NO   立账单号      MF_LZ1==================不用此字段
+                # AMTN_CLS  冲款金额  AMTN_BC
+                # RP_DD  冲款时间    datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+
+                # 修改回冲金额表
+                cursor.execute("""UPDATE MF_MON SET AMTN=AMTN+%s-%s,AMTN_REST=AMTN+%s-%s WHERE RP_NO=%s AND RP_ID='2'""", [AMTN_BC,float(row_AMTN),AMTN_BC,float(row_AMTN), RP_NO])
+                # RP_NO  付款单号  RP_NO
+                # AMTN   冲款金额
+                # AMTN_ARP  总金额  此栏位不需要改
+                # AMTN_REST
+
+                # 修改账户收支单表头
+                cursor.execute("""UPDATE MF_BAC SET BB_DD=%s,BACC_NO=%s,ACC_NO=%s,AMTN=%s WHERE BB_NO=%s AND BB_ID='BT'""",
+                [ datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CACC_NO, Acc_No_km, -float(AMTN_BC),'BT'+RP_NO[2::]])
+                # BB_NO  账户收支单单号  'BT'+RP_NO[2::]
+                # BB_DD   账户收支单日期  RP_NO[2::], datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                # BACC_NO  银行账户代号       CACC_NO
+                # ACC_NO  会计科目      待定,需要会计确定自动取银行账号里面的会计科目     100903
+                # AMTN 金额   付款是负数,收款是正数      -float(AMTN_BC)
+
+                #修改账户收支单表身
+                cursor.execute("""UPDATE TF_BAC SET BB_DD=%s,AMTN=%s WHERE BB_NO=%s AND BB_ID='BT'""",[datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), AMTN_BC,'BT'+RP_NO[2::]])
+                # BB_NO  账户收支单号  'BT'+RP_NO[2::]
+                # BB_DD  账户收支单日期    datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                # AMTN   金额      AMTN_BC
+
+                # 回写立账单的数据需要减去之前冲款的金额  row_AMTN
+                cursor.execute("""UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)+%s-%s,AMT=ISNULL(AMT,0)-%s+%s WHERE BIL_NO=%s AND BIL_ID='LP'""",[AMTN_BC,float(row_AMTN), AMTN_BC, float(row_AMTN),MF_LZ1])
+                # AMTN_RCV   已冲金额     ISNULL(AMTN_RCV,0)+%s
+                # AMT   未冲金额  ISNULL(AMT,0)-%s
+                # BIL_NO  开票单号
+
+                # 如果单据已经冲完,结案掉立账单,还有进货的立账结案标识
+                row_AMT = cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ) FROM MF_ARP WHERE BIL_NO=%s AND BIL_ID='LP'",
+                                         [MF_LZ1]).fetchall()[0][0]
+                if row_AMT > 0:
+                    cursor.execute("""UPDATE MF_ARP SET CLOSE_ID='F' WHERE BIL_NO=%s AND BIL_ID='LP'""", [MF_LZ1])
+                    cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='F',CLSLZ='T' WHERE PS_NO=%s AND PS_ID='PC'""", ['PC' + MF_LZ1[2::]])
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("修改付款单sql语句执行异常")
+            transaction.savepoint_commit(sid)
+
+        context = {
+            'a': 'put付款作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def delete(self, request):
+        # 获取参数
+        req_data = json.loads(request.body.decode())
+        # 获取参数
+        RP_NO = req_data.get("RP_NO")  # 付款单号         字符类型
+        # # 获取开票作业单号
+        # MF_LZ1 = req_data.get("MF_LZ1")  # 开票作业单号         字符类型
+        # # 获取原付款单金额
+        # AMTN_BC = req_data.get("AMTN_BC")  # 原单付款金额        字符类型
+        # print(MF_LZ1)
+        # print(AMTN_BC)
+        # {
+        #     "RP_NO": "PTF9A260001"
+        # }
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入收款单号')
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','2')
+        if row_ZL_NO <= 0:
+            return http.HttpResponseForbidden('单号不存在')
+
+        with connection.cursor() as cursor:
+
+            # 获取原单付款单总金额用于扣减预付款单总金额
+            AMTN_BC = cursor.execute("""SELECT ISNULL(AMTN_CLS,0) FROM TF_MON WHERE RP_NO=%s AND RP_ID='2'""", [RP_NO]).fetchall()[0][0]
+            # 获取开票单号
+            MF_LZ1 = cursor.execute("""SELECT ARP_NO FROM TC_MON WHERE RP_NO=%s AND RP_ID='2'""", [RP_NO]).fetchall()[0][0]
+            MF_LZ1 = 'LP' + MF_LZ1[2::]
+        # 缓存之前冲款的金额用于回写立账冲款数据
+            row_AMTN = cursor.execute("""SELECT AMTN_BC FROM TF_MON WHERE RP_NO=%s AND RP_ID='2'""", [RP_NO]).fetchall()[0][0]
+            # row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
+
+            sid = transaction.savepoint()  # 开启事物
+            try:
+            # 删除付款单表头
+                cursor.execute("""DELETE FROM TC_MON WHERE  RP_NO=%s AND RP_ID='2'""", [RP_NO])
+            # 删除付款单表身
+                cursor.execute("""DELETE FROM TF_MON WHERE  RP_NO=%s AND RP_ID='2'""", [RP_NO])
+
+            #冲款付款金额表,如果是分多次付款的话那么就不能直接删除,是否是付一次款那么就可以直接删除
+            # 如果原来已经付款等于目前传过来的金额那么就可以直接删除
+            #     row_AMTN_MF_MON = cursor.execute("""SELECT AMTN FROM MF_MON WHERE RP_NO=%s AND RP_ID='2'""", [RP_NO]).fetchall()[0][0]
+            #     if float(AMTN_BC)==float(row_AMTN_MF_MON):
+                #修改回冲金额表
+                cursor.execute("""DELETE FROM MF_MON WHERE RP_NO=%s AND RP_ID='2'""", [RP_NO])
+                # else:
+                #     cursor.execute("""UPDATE MF_MON SET AMTN=AMTN+%s-%s,AMTN_REST=AMTN+%s-%s WHERE RP_NO=%s AND RP_ID='2'""",
+                #                [AMTN_BC, row_AMTN, AMTN_BC, row_AMTN, RP_NO])
+                # 删除账户收支单表头
+                cursor.execute("""DELETE FROM MF_BAC WHERE  BB_NO=%s AND BB_ID='BT'""", ['BT'+RP_NO[2::]])
+                # 删除账户收支单表身
+                cursor.execute("""DELETE FROM TF_BAC WHERE  BB_NO=%s AND BB_ID='BT'""", ['BT' + RP_NO[2::]])
+
+                # 如果金额立账金额等于传过来的金额那么就直接删除
+                row_AMTN_MF_ARP = cursor.execute("""SELECT AMTN FROM MF_ARP WHERE BIL_NO=%s""", [MF_LZ1]).fetchall()[0][0]
+                print(float(row_AMTN_MF_ARP))
+                if float(AMTN_BC)==float(row_AMTN_MF_ARP):
+                    cursor.execute(
+                        """UPDATE MF_ARP SET AMTN_RCV=0,AMT=0 WHERE BIL_NO=%s""",[MF_LZ1])
+                    # 回写立账单的数据需要减去之前冲款的金额  row_AMTN
+                else:
+                    cursor.execute(
+                        """UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)-%s,AMT=ISNULL(AMTN,0)-ISNULL(AMTN_RCV,0) WHERE BIL_NO=%s""",[AMTN_BC, MF_LZ1])
+                # 结案掉立账单, 还有进货的立账结案标识
+                cursor.execute("""UPDATE MF_ARP SET CLOSE_ID='F' WHERE BIL_NO=%s""", [MF_LZ1])
+                cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='F',CLSLZ='T' WHERE PS_NO=%s""", ['PC' + MF_LZ1[2::]])
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("删除付款单sql语句执行异常")
+            transaction.savepoint_commit(sid)
+        context = {
+            'a': 'delete付款作业'
+        }
+        return http.JsonResponse(context)
+
+#预计付款单
+class ExpectedOperationView(View):
+    def get(self, request):
+        context = {
+            'a': 'get预付款作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def post(self, request):
+        # 获取参数
+        RP_NO = request.POST.get("RP_NO")  # 预付款单号         字符类型   ----------------1
+        RP_DD = request.POST.get("RP_DD")  # 预付款日期            字符类型  --------------------1
+        CUS_NO = request.POST.get("CUS_NO")  # 预付款客户编码        字符类型  -------------------------1
+        CUS_NO_NAME = request.POST.get("CUS_NO_NAME")  # 预付款客户名称       字符类型  ---------------------1
+        AMTN_BC = request.POST.get("AMTN_BC")  # 预付款金额            数字类型  ---------------------------1
+        CACC_NO = request.POST.get("CACC_NO")  # 预付款银行编码          字符类型    ------------1
+        USR = request.POST.get("USR")  # 制单人编码                   字符类型   ------------------1
+        USR_NAME = request.POST.get("USR_NAME")  # 制单人姓名         字符类型   -----------------------1
+
+        # 判断单号的合法性
+        if RP_NO[:4] != 'PTYF' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('预付款单号输入不合法,单号必须是PTYF开头且长度必须是11位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入预付款单号')
+            # //判断有没有输入银行账号
+        sum_CACC_NO = et_CACC_NO(CACC_NO)
+        if sum_CACC_NO == 'NO':
+            return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMTN_BC)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','2')
+        if row_ZL_NO > 0:
+            return http.HttpResponseForbidden('预付款单号已存在')
+
+        # 判断用户是否存在,不存在则创建
+        row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
+
+        # 判断客户资料是否存在,不存在则创建
+        row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '2', datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
+
+        with connection.cursor() as cursor:
+            # sql = "SELECT COUNT(*) FROM %s WHERE %s='%s' AND %s='%s'" % (TB, TYPE, OOD, BIL_NO, BLI_NAME)
+            # 获取银行账号的会计科目
+            Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+            if Acc_No_km=='':
+                return http.HttpResponseForbidden('银行会计科目不存在')
+
+            sid = transaction.savepoint()  # 开启事物
+            try:
+                cursor.execute("""INSERT INTO TF_MON(IRP_ID,RP_NO,ITM,RP_ID,CLS_ID,RP_DD,CUS_NO,INCLUDESON,AMTN_BC,AMTN_CLS,BC_NO,CACC_NO,EXC_RTO,DEP,USR,CHK_MAN,CLS_DATE,SYS_DATE,IEA_ID,IOR_ID,SK_TYPE)VALUES
+                ('T',%s,1,2,'F',%s,%s,'F',%s,0,%s,%s,1,'0000',%s,%s,%s,%s,'F','F',1)""",
+                [RP_NO, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CUS_NO,AMTN_BC,'BT'+RP_NO[2::],CACC_NO,USR,USR,datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),datetime.datetime.strptime(RP_DD, '%Y-%m-%d')])
+                # RP_NO   预付款单号  RP_NO
+                # RP_DD   预付款日期   datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                #CUS_NO    客户编码     CUS_NO
+                #AMTN_BC    预付款金额  AMTN_BC
+                #BC_NO     账户收支单号   'BT'+RP_NO[2::]
+                # CACC_NO   付款银行编码  CACC_NO
+                #USR 制单人    USR
+                #CHK_MAN 审核人    USR
+                # CLS_DATE  审核时间    datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                # SYS_DATE    制单时间  datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+
+                # 插入立账金额
+                # cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ),BIL_NO FROM MF_ARP WHERE BIL_NO=%s", [MF_LZ1])
+                cursor.execute("""INSERT INTO MF_MON(RP_ID,RP_NO,RP_DD,DEP,AMTN,AMTN_ARP,AMTN_REST,FJ_NUM)VALUES
+                          (2,%s,%s,'0000',%s,0,0,0)""" ,[RP_NO,datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),AMTN_BC])
+                # RP_NO  单号  RP_NO
+                # RP_DD   时间  datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                # AMTN  金额    AMTN_BC
+
+                # 插入账户收支单表头
+                cursor.execute("""INSERT INTO MF_BAC(BB_ID,BB_NO,BB_DD,BACC_NO,ACC_NO,DEP,BIL_NO,EXC_RTO,AMTN,USR,CHK_MAN,OPN_ID,CLS_DATE,SYS_DATE,BIL_ID_N,BIL_NO_N)VALUES
+                ('BT',%s,%s,%s,%s,'0000',%s,1,%s,%s,%s,'F',%s,%s,'PT',%s)""",
+                               ['BT' + RP_NO[2::], datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CACC_NO, Acc_No_km,
+                                'BT' + RP_NO,
+                                float(AMTN_BC), USR, USR, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),
+                                datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),
+                                RP_NO])
+                #BB_NO  收支单号    'BT'+RP_NO[2::]
+                #BB_DD   账户收支单时间  datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                #BACC_NO  银行账号编码  CACC_NO
+                #ACC_NO  会计科目先固定  100903
+                #BIL_NO  来源单号  'BT'+RP_NO
+                #AMTN   收支单金额  -float(AMTN_BC)
+                #USR  制单人   USR
+                #审核人  CHK_MAN
+                #CLS_DATE  审核人
+                #SYS_DATE   制单人
+
+                #插入收支单表身
+                cursor.execute("""INSERT INTO TF_BAC(BB_ID,BB_NO,ITM,BB_DD,EXC_RTO,AMTN,DEP,CUS_NO,ADD_ID,PRE_ITM)values
+                ('BT',%s,1,%s,1,%s,%s,'51','-',1)""", ['BT'+RP_NO[2::],datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),AMTN_BC,CUS_NO])
+                # BB_NO  单号  'BT'+RP_NO[2::]
+                #BB_DD  时间      datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                #AMTN  金额  AMTN_BC
+                #CUS_NO  客户编码   CUS_NO
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("预计付款单新增sql语句执行异常")
+            transaction.savepoint_commit(sid)
+        context = {
+            'a': 'post预付款作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def put(self, request):
+        # 获取参数
+        req_data = json.loads(request.body.decode())
+        RP_NO = req_data.get("RP_NO")  # 预付款单号         字符类型   ----------------1
+        RP_DD = req_data.get("RP_DD")  # 预付款日期            字符类型  --------------------1
+        CUS_NO = req_data.get("CUS_NO")  # 预付款客户编码        字符类型  -------------------------1
+        CUS_NO_NAME = req_data.get("CUS_NO_NAME")  # 预付款客户名称       字符类型  ---------------------1
+        AMTN_BC = req_data.get("AMTN_BC")  # 预付款金额            数字类型  ---------------------------1
+        CACC_NO = req_data.get("CACC_NO")  # 预付款银行编码          字符类型    ------------1
+        UP_DD = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 修改时间
+        # {
+        #     "RP_NO":"PT9A220001",
+        #     "RP_DD":"2019-10-22",
+        #     "CUS_NO":"AQ1111",
+        #     "CUS_NO_NAME":"天心软件",
+        #     "AMTN_BC":888,
+        #     "CACC_NO":"01"
+        # }
+        # 判断单号的合法性
+        if RP_NO[:4] != 'RTFS' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('预付款单号输入不合法,单号必须是RTFS开头且长度必须是11位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入预付款单号')
+        # //判断有没有输入银行账号
+        sum_CACC_NO = et_CACC_NO(CACC_NO)
+        if sum_CACC_NO == 'NO':
+            return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMTN_BC)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','2')
+        if row_ZL_NO == 0:
+            return http.HttpResponseForbidden('预付款单号不存在')
+
+        # 判断单号是不是已经产生付款单
+        row_ZL_NO = examine_ood('TF_MON1', 'IRP_NO', RP_NO, 'RP_ID', '2')
+        if row_ZL_NO > 0:
+            return http.HttpResponseForbidden('预付款单已经产生付款单')
+
+        # 判断客户资料是否存在,不存在则创建
+        row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '2', datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
+
+        with connection.cursor() as cursor:
+            # 获取银行账号的会计科目
+            Acc_No_km = cursor.execute("""SELECT Acc_No FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+
+            if Acc_No_km=='':
+                return http.HttpResponseForbidden('银行会计科目不存在')
+
+            sid = transaction.savepoint()  # 开启事物
+            try:
+                # 修改预付款单
+                # cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ),BIL_NO FROM MF_ARP WHERE BIL_NO=%s", [MF_LZ1])
+                cursor.execute("""UPDATE TF_MON SET RP_DD=%s,CUS_NO=%s,AMTN_BC=%s,BC_NO=%s,CACC_NO=%s,MODIFY_DD=%s,MODIFY_MAN=USR WHERE RP_NO=%s""",
+                               [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),CUS_NO,AMTN_BC,'BT'+RP_NO[2::],CACC_NO,UP_DD,RP_NO])
+
+                # RP_NO   预付款单号  RP_NO
+                # RP_DD   预付款日期   datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                # CUS_NO    客户编码     CUS_NO
+                # AMTN_BC    预付款金额  AMTN_BC
+                # BC_NO     账户收支单号   'BT'+RP_NO[2::]
+                # CACC_NO   付款银行编码  CACC_NO
+                #修改立账单金额
+
+                cursor.execute("""UPDATE MF_MON SET RP_DD=%s,AMTN=%s WHERE RP_NO=%s""", [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),AMTN_BC,RP_NO])
+                # RP_NO  单号  RP_NO
+                # RP_DD   时间  datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                # AMTN  金额    AMTN_BC
+
+                #修改账户收支单表头
+                cursor.execute("""UPDATE MF_BAC SET BB_DD=%s,BACC_NO=%s,ACC_NO=%s,BIL_NO=%s,AMTN=%s WHERE BB_NO=%s""",
+                               [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),CACC_NO,Acc_No_km,'BT'+RP_NO,-float(AMTN_BC),'BT'+RP_NO[2::]])
+                # BB_NO  收支单号    'BT'+MF_LZ1[2::]
+                # BB_DD   账户收支单时间  datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                # BACC_NO  银行账号编码  CACC_NO
+                # ACC_NO  会计科目先固定  100903
+                # BIL_NO  来源单号  'BT'+RP_NO
+                # AMTN   收支单金额  -float(AMTN_BC)
+
+                # 修改立账单表身
+
+                cursor.execute("""UPDATE TF_BAC SET BB_DD=%s,AMTN=%s,CUS_NO=%s WHERE BB_NO=%s""", [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),AMTN_BC,CUS_NO,'BT'+RP_NO[2::]])
+                # BB_NO  单号  'BT'+RP_NO[2::]
+                # BB_DD  时间      datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                # AMTN  金额  AMTN_BC
+                # CUS_NO  客户编码   CUS_NO
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("预计付款单修改sql语句执行异常")
+            transaction.savepoint_commit(sid)
+        context = {
+            'a': 'put预付款作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def delete(self, request):
+        #获取参数
+        req_data = json.loads(request.body.decode())
+        RP_NO = req_data.get("RP_NO")  # 预付款单号
+
+        # {
+        #     "RP_NO": "PTYF9A280001"
+        # }
+        # 判断单号的合法性
+        if RP_NO[:4] != 'PTYF' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('预付款单号输入不合法,单号必须是RTFS开头且长度必须是11位')
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入预付款单号')
+        # 判断单号是不是已经产生付款单
+        row_ZL_NO = examine_ood('TF_MON1', 'IRP_NO', RP_NO,'RP_ID','2')
+        if row_ZL_NO > 0:
+            return http.HttpResponseForbidden   ('预付款单已经产生付款单')
+
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','2')
+        if row_ZL_NO == 0:
+            return http.HttpResponseForbidden('预付款单号不存在')
+
+        with connection.cursor() as cursor:
+            sid = transaction.savepoint()  # 开启事物
+            try:
+                # 修改预付款单
+                # cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ),BIL_NO FROM MF_ARP WHERE BIL_NO=%s", [MF_LZ1])
+                #删除付款单
+                cursor.execute("""DELETE FROM TF_MON WHERE RP_NO=%s AND RP_ID='2'""", [RP_NO])
+                # 删除金额立账单
+                cursor.execute("""DELETE FROM MF_MON WHERE RP_NO=%s  AND RP_ID='2'""", [RP_NO])
+                #删除账户收支单表头
+                cursor.execute("""DELETE FROM MF_BAC WHERE BB_NO=%s""", ['BT'+RP_NO[2::]])
+                #删除账户收支单表身
+                cursor.execute("""DELETE FROM TF_BAC WHERE BB_NO=%s""", ['BT'+RP_NO[2::]])
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("预计付款单修改sql语句执行异常")
+            transaction.savepoint_commit(sid)
+        context = {
+            'a': 'delete预付款作业'
+        }
+        return http.JsonResponse(context)
+
+
+#预付冲应付
+class ExpectedPtOperationView(View):
+
+    @transaction.atomic
+    def get(self, request):
+        sid = transaction.savepoint()
+        with connection.cursor() as cursor:
+            # cursor.execute("INSERT INTO CUST(CUS_NO,[NAME])VALUES ('QQ12345',%s)",[a])
+            # cursor.execute("UPDATE PRDT SET NAME='呜呜呜呜' where prd_no = %s", [a])
+            # cursor.execute("select * from prdt where prd_no = %s", [a])
+            try:
+                cursor.execute("""update cust set name='333'  where cus_no='ACDC438'""")
+                cursor.execute("""insert into cust(cus_no,name)values('BAG037211','weqwe')""")
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("数据库执行异常")
+            transaction.savepoint_commit(sid)
+
+        context = {
+            'a': 'get预付冲应付作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def post(self, request):
+
+        req_data = json.loads(request.body.decode())
+        # print(req_data)
+        # # 获取参数
+        RP_NO = req_data.get("RP_NO")  #付款单号         字符类型
+        IRP_NO = req_data.get("IRP_NO")  #预付款单号         字符类型
+        RP_DD = req_data.get("RP_DD")  #付款日期         字符类型
+        CUS_NO = req_data.get("CUS_NO")  #付款客户         字符类型
+        USR = req_data.get("USR")  #制单人         字符类型
+        list = req_data.get("list")  #付款单号         字符类型
+        # {
+        #     "RP_NO": "PTYF9A280002",
+        #     "IRP_NO": "PTYF9A280001",
+        #     "RP_DD": "2019-10-22",
+        #     "CUS_NO": "AQ1111",
+        #     "USR": "A10000",
+        #     "list": [
+        #         {"DH": "LPF9A170002",
+        #          "ATM": 340.02
+        #          },
+        #         {"DH": "LPF9A170003",
+        #          "ATM": 340.02
+        #          }
+        #     ]
+        # }
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入付款单号')
+        # 判断是否输入预收款单号
+        if IRP_NO is None:
+            return http.HttpResponseForbidden('请输入预付款单号')
+        # 判断单号的合法性
+        if RP_NO[:4] != 'PTYC' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('付款单号输入不合法,单号必须是PTYC开头且长度必须是11位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','2')
+        if row_ZL_NO > 0:
+            return http.HttpResponseForbidden('预付款冲应付单据号码已存在')
+        # 判断预收款单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', IRP_NO, 'RP_ID', '2')
+        if row_ZL_NO <= 0:
+            return http.HttpResponseForbidden('预冲款单号不存在')
+        # 获取总金额
+        sum_ATM = 0  # 冲款金额
+        yf_sum = 0  # 获取单据应付款总金额
+        for i in list:
+            # 判断立账单号是否合法
+            if i["DH"][:3] != 'LPF' or len(i["DH"]) != 10:
+                return http.HttpResponseForbidden('开票单号输入不合法,单号必须是LPF开头且长度必须是10位')
+            # 判断金额输入是否正确
+            if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(i["ATM"])) is None:
+                return http.HttpResponseForbidden('金额输入不正确')
+            sum_ATM = round(sum_ATM + i["ATM"], 4)
+            # 判断开票单号是否存在
+            row_MF_LZ = examine_ood('MF_LZ1', 'LZ_NO', i["DH"], 'LZ_ID', 'LP')
+            if row_MF_LZ <= 0:
+                return http.HttpResponseForbidden('开票单号不存在')
+            # 判断预收款单号是否存在
+            row_ZL_NO = examine_ood('TF_MON', 'RP_NO', IRP_NO, 'RP_ID', '2')
+            if row_ZL_NO <= 0:
+                return http.HttpResponseForbidden('预冲款单号不存在')
+            with connection.cursor() as cursor:
+                # 获取单据应付款总金额
+                yf_sum =round(yf_sum + cursor.execute("""SELECT AMTN FROM MF_ARP WHERE BIL_NO=%s""", [i["DH"]]).fetchall()[0][0], 4)
+        if sum_ATM>yf_sum:
+            return http.HttpResponseForbidden('冲款金额大于应付金额')
+
+        with connection.cursor() as cursor:
+
+            sid = transaction.savepoint()  # 开启事物
+            try:
+                # 插入回冲预付款扣款表
+                # cursor.execute("SELECT COUNT(*) FROM CUST WHERE CUS_NO=%s", [CUS_NO])
+                cursor.execute("""INSERT INTO TF_MON1(RP_ID,RP_NO,ITM,IRP_NO,RP_ID1,IRPITM,IRPITM2,AMTN_CLS)VALUES
+                (2,%s,1,%s,2,1,0,%s)""", [RP_NO,IRP_NO,sum_ATM])
+                # RP_NO  付款单号  RP_NO
+                # IRP_NO  预付款单号  IRP_NO
+                # AMTN_CLS  付款总金额  sum_ATM
+
+                # 插入付款单表头
+                cursor.execute("""INSERT INTO TF_MON(IRP_ID,RP_NO,ITM,RP_ID,CLS_ID,RP_DD,CUS_NO,INCLUDESON,AMTN_CLS,AMTN_IRP,EXC_RTO,DEP,USR,CHK_MAN,CLS_DATE,SYS_DATE,IEA_ID,IOR_ID,SK_TYPE)VALUES
+                ('F',%s,1,2,'F',%s,%s,'F',%s,%s,1,'0000',%s,%s,%s,%s,'F','F',1)""",
+                [RP_NO,datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),CUS_NO,sum_ATM,sum_ATM,USR,USR,datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),datetime.datetime.strptime(RP_DD, '%Y-%m-%d')])
+                # RP_NO  付款单  RP_NO
+                # RP_DD  付款日期 datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                # CUS_NO 付款厂商 CUS_NO
+                # AMTN_CLS  付款金额  sum_ATM
+                # AMTN_IRP   金额 sum_ATM
+                # USR     制单人   USR
+                # CHK_MAN     审核人   USR
+                # CLS_DATE   制单时间   datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                # SYS_DATE    审核时间      datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+
+                # 插入付款单表身,先遍历出每一项的单号和金额,然后在插入
+                itm=0  #定义项次
+                for i in list:
+                    itm +=1
+                    print(i["DH"],i["ATM"])  #得到单号和金额
+                    print(itm)
+                    cursor.execute("""INSERT INTO TC_MON(RP_ID,RP_NO,ITM,ITM2,ARP_NO,AMTN_CLS,ARP_OPN_ID,RP_DD,CUS_NO,PRE_ITM)values
+                    (2,%s,1,%s,%s,%s,2,%s,%s,%s)""", [RP_NO,itm,'AP'+i["DH"][2::],i["ATM"],datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),CUS_NO,itm])
+                    # RP_NO 付款单号  RP_NO
+                    # ITM2  项次    itm
+                    # ARP_NO 立账单号  'AP'+i["DH"][2::]
+                    # AMTN_CLS    冲款金额  i["ATM"]
+                    # RP_DD   冲款日期  datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                    # CUS_NO  客户  CUS_NO
+                    # PRE_ITM  项次  itm
+
+                    # 更新立账金额 回写立账单的数据
+                    # cursor.execute(
+                    #     """UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)+%s,AMT=ISNULL(AMTN,0)-ISNULL(AMTN_RCV,0)-%s WHERE BIL_NO=%s""",
+                    #     [i["ATM"],i["ATM"], i["DH"]])
+
+                    cursor.execute(
+                        """UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)+%s,AMT=ISNULL(AMTN,0)-ISNULL(AMTN_RCV,0)-%s WHERE BIL_NO=%s""",
+                        [i["ATM"],i["ATM"], i["DH"]])
+
+                    # cursor.execute(
+                    #     """UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)+%s,AMT=ISNULL(AMT,0)-ISNULL(AMTN_RCV,0)-%s WHERE BIL_NO=%s""",
+                    #     [AMTN_BC, AMTN_BC, MF_LZ1])
+                    # AMTN_RCV   已冲金额     ISNULL(AMTN_RCV,0)+%s
+                    # AMT   未冲金额  ISNULL(AMT,0)-%s
+                    # BIL_NO  开票单号
+
+                    # 如果单据已经冲完,结案掉立账单,还有进货的立账结案标识
+                    row_AMT = cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ),BIL_NO FROM MF_ARP WHERE BIL_NO=%s",
+                                             [i["DH"]]).fetchall()[0][0]
+                    if row_AMT <= 0:
+                        cursor.execute("""UPDATE MF_ARP SET CLOSE_ID='T' WHERE BIL_NO=%s""", [i["DH"]])
+                        cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='T',CLSLZ='T' WHERE PS_NO=%s AND PS_ID='PC'""", ['PC' + i["DH"][2::]])
+                # 插入预付款已冲金额表  ------
+                cursor.execute(
+                    """INSERT INTO MF_MON(RP_NO,RP_DD,RP_ID,DEP,AMTN,AMTN_ARP,AMTN_REST,FJ_NUM)VALUES(%s,%s,2,'0000',0,%s,%s,0)""",
+                    [RP_NO, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), yf_sum,sum_ATM])
+                # RP_NO  单号  RP_NO
+                # RP_DD  时间  datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                # AMTN_ARP  表身总金额   yf_sum
+                # AMTN_REST  本次冲款总金额    sum_ATM
+                # 更新预付款单已付金额
+                cursor.execute(
+                    """UPDATE TF_MON SET AMTN_CLS=ISNULL(AMTN_CLS,0)+%s WHERE RP_NO=%s AND RP_ID='2'""",
+                    [sum_ATM,IRP_NO])
+
+                # 获取预付款单的预付金额和已冲金额,进行对比,如果两个值相同,那么就结案掉预付款单
+                row_AMTN_MF_MON = cursor.execute(
+                    """SELECT ISNULL(AMTN_BC,0) AS AMTN_BC, ISNULL(AMTN_CLS,0) AS AMTN_CLS FROM TF_MON  WHERE RP_NO=%s AND RP_ID='2'""",[IRP_NO]).fetchall()
+                if float(row_AMTN_MF_MON[0][0]) == float(row_AMTN_MF_MON[0][1]):
+                    cursor.execute("""UPDATE TF_MON SET CLS_ID='T' WHERE IRP_NO=%s AND RP_ID='2'""",[IRP_NO])
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("预计冲应该付作业新增单据sql语句执行异常")
+            transaction.savepoint_commit(sid)
+        a = {
+            "RP_NO": "PT9A230002",
+            "IRP_NO": "PT9A220001",
+            "RP_DD":"2019-10-22",
+            "CUS_NO":"AQ1111",
+            "USR":"A10000",
+            "list": [
+                {"DH": "LP9A230001",
+                 "ATM": 111
+                 },
+                 {"DH": "LP9A230002",
+                 "ATM": 90
+                 }
+            ]
+        }
+        context = {
+            'a': 'post预付冲应付作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def put(self, request):
+        req_data = json.loads(request.body.decode())
+        # # 获取参数
+        RP_NO = req_data.get("RP_NO")  # 付款单号         字符类型
+        IRP_NO = req_data.get("IRP_NO")  # 预付款单号         字符类型
+        RP_DD = req_data.get("RP_DD")  # 付款日期         字符类型
+        list = req_data.get("list")  # 付款单号         字符类型
+        UP_DD = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 修改时间
+
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入付款单号')
+        # 判断是否输入预收款单号
+        if IRP_NO is None:
+            return http.HttpResponseForbidden('请输入预付款单号')
+        # 判断单号的合法性
+        if RP_NO[:4] != 'PTYC' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('付款单号输入不合法,单号必须是PTYC开头且长度必须是11位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','2')
+        if row_ZL_NO <= 0:
+            return http.HttpResponseForbidden('付款单不存在')
+        # {
+        #     "RP_NO": "PTYF9A280002",
+        #     "IRP_NO": "PTYF9A280001",
+        #     "RP_DD": "2019-10-28",
+        #     "list": [
+        #         {"DH": "LPF9A170002",
+        #          "ATM": 99
+        #          },
+        #         {"DH": "LPF9A170003",
+        #          "ATM": 9
+        #          }
+        #     ]
+        # }
+        # 获取总金额
+        sum_ATM = 0  # 冲款金额
+        yf_sum = 0  # 获取单据应付款总金额
+        for i in list:
+            # 判断立账单号是否合法
+            if i["DH"][:3] != 'LPF' or len(i["DH"]) != 10:
+                return http.HttpResponseForbidden('开票单号输入不合法,单号必须是LPF开头且长度必须是10位')
+            # 判断金额输入是否正确
+            if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(i["ATM"])) is None:
+                return http.HttpResponseForbidden('金额输入不正确')
+            sum_ATM = round(sum_ATM + i["ATM"], 4)
+            # 判断开票单号是否存在
+            row_MF_LZ = examine_ood('MF_LZ1', 'LZ_NO', i["DH"], 'LZ_ID', 'LP')
+            if row_MF_LZ <= 0:
+                return http.HttpResponseForbidden('开票单号不存在')
+            with connection.cursor() as cursor:
+                # 获取单据应付款总金额
+                yf_sum = round(
+                    yf_sum + cursor.execute("""SELECT AMTN FROM MF_ARP WHERE BIL_NO=%s""", [i["DH"]]).fetchall()[0][0], 4)
+        if sum_ATM > yf_sum:
+            return http.HttpResponseForbidden('冲款金额大于应付金额')
+
+        with connection.cursor() as cursor:
+
+            sid = transaction.savepoint()  # 开启事物
+            try:
+                # 修改回冲预付款扣款表
+                cursor.execute("""UPDATE  TF_MON1 SET AMTN_CLS=%s WHERE RP_NO=%s AND RP_ID='2'""", [sum_ATM, RP_NO])
+                # RP_NO  付款单号  RP_NO
+                # IRP_NO  预付款单号  IRP_NO
+                # AMTN_CLS  付款总金额  sum_ATM
+
+                # 修改付款单表头
+                cursor.execute("""UPDATE TF_MON SET RP_DD=%s,AMTN_CLS=%s,AMTN_IRP=%s,MODIFY_DD=%s,MODIFY_MAN=USR WHERE RP_NO=%s AND RP_ID='2'""",
+                               [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),sum_ATM,sum_ATM,UP_DD,RP_NO])
+                # RP_NO  付款单  RP_NO
+                # RP_DD  付款日期 datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                # CUS_NO 付款厂商 CUS_NO
+                # AMTN_CLS  付款金额  sum_ATM
+                # AMTN_IRP   金额 sum_ATM
+                # 修改付款单表身,先遍历出每一项的单号和金额,然后在插入
+                itm = 0  # 定义项次
+                YD_ATY = 0 #原来单总金额
+                for i in list:
+                    itm += 1
+                    print(i["DH"], i["ATM"])  # 得到单号和金额
+                    QTY_TC_MON=cursor.execute("""SELECT ISNULL(AMTN_CLS,0) FROM TC_MON WHERE ARP_NO=%s""", ['AP'+i["DH"][2::]]).fetchall()[0][0]
+                    YD_ATY = round((YD_ATY + QTY_TC_MON),4)
+                    print(i["ATM"])
+                    cursor.execute("""UPDATE TC_MON SET AMTN_CLS=%s WHERE ARP_NO=%s AND RP_ID='2'""", [i["ATM"],'AP'+i["DH"][2::]])
+
+                    # RP_NO 付款单号  RP_NO
+                    # ITM2  项次    itm
+                    # ARP_NO 立账单号  'AP'+i["DH"][2::]
+                    # AMTN_CLS    冲款金额  i["ATM"]
+                    # RP_DD   冲款日期  datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                    # CUS_NO  客户  CUS_NO
+                    # PRE_ITM  项次  itm
+
+                    # 更新立账金额
+                    # 回写立账单的数据
+                    # 获取原单已冲金额未冲金额
+                    #AMTN_RCV 已经冲金额   AMT未冲金额========================================================================================
+                    ATM_MF_ARP=cursor.execute("""SELECT ISNULL(AMTN_RCV,0),ISNULL(AMT,0) FROM MF_ARP  WHERE BIL_NO=%s""",[ i["DH"]]).fetchall()
+                    AMTN_RCV=ATM_MF_ARP[0][0]    #原单已经冲金额
+                    AMT=ATM_MF_ARP[0][1]    #原单未冲金额
+                    cursor.execute(
+                        """UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)+%s-%s,AMT=ISNULL(AMTN,0)-ISNULL(AMTN_RCV,0)-%s-%s WHERE BIL_NO=%s""",
+                        [i["ATM"],AMTN_RCV, i["ATM"],AMT, i["DH"]])
+
+                    # AMTN_RCV   已冲金额     ISNULL(AMTN_RCV,0)+%s
+                    # AMT   未冲金额  ISNULL(AMT,0)-%s
+                    # BIL_NO  开票单号
+
+                    # 如果单据已经冲完,结案掉立账单,还有进货的立账结案标识
+                    row_AMT = cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ),BIL_NO FROM MF_ARP WHERE BIL_NO=%s",
+                                             [i["DH"]]).fetchall()[0][0]
+                    if row_AMT <= 0:
+                        cursor.execute("""UPDATE MF_ARP SET CLOSE_ID='F' WHERE BIL_NO=%s""", [i["DH"]])
+                        cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='F',CLSLZ='F' WHERE PS_NO=%s AND PS_ID='PC'""",
+                                       ['PC' + i["DH"][2::]])
+
+                # 更新预付款已冲金额表
+                cursor.execute("""UPDATE MF_MON SET AMTN_REST=%s WHERE RP_NO=%s AND RP_ID='2'""",[sum_ATM,RP_NO])
+                # RP_NO  单号  RP_NO
+                # RP_DD  时间  datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+                # AMTN_ARP  应付总金额   yf_sum
+                # AMTN_REST  本次冲款总金额    sum_ATM
+
+                # 更新预付款单已付金额
+                cursor.execute(
+                    """UPDATE TF_MON SET AMTN_CLS=ISNULL(AMTN_CLS,0)+%s-%s WHERE RP_NO=%s AND RP_ID='2'""",
+                    [sum_ATM,YD_ATY,IRP_NO])
+
+                # 获取预付款单的预付金额和已冲金额,进行对比,如果两个值相同,那么就结案掉预付款单
+                row_AMTN_MF_MON = cursor.execute(
+                    """SELECT ISNULL(AMTN_BC,0) AS AMTN_BC, ISNULL(AMTN_CLS,0) AS AMTN_CLS FROM TF_MON  WHERE RP_NO=%s AND RP_ID='2'""",
+                    [IRP_NO]).fetchall()
+
+                if float(row_AMTN_MF_MON[0][0]) == float(row_AMTN_MF_MON[0][1]):
+                    cursor.execute("""UPDATE TF_MON SET CLS_ID='F' WHERE IRP_NO=%s AND RP_ID='2'""", [IRP_NO])
+
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("预计冲应该付作业修改单据sql语句执行异常")
+            transaction.savepoint_commit(sid)
+        a = {
+            "RP_NO": "PT9A230002",
+            "IRP_NO": "PT9A220001",
+            "RP_DD": "2019-10-22",
+            "list": [
+                {"DH": "LP9A230001",
+                 "ATM": 111
+                 },
+                {"DH": "LP9A230002",
+                 "ATM": 90
+                 }
+            ]
+        }
+
+
+        context = {
+            'a': 'put预付冲应付作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def delete(self, request):
+        req_data = json.loads(request.body.decode())
+        # # 获取参数
+        RP_NO = req_data.get("RP_NO")  # 付款单号         字符类型
+
+        # {
+        #     "RP_NO": "PTYF9A280002"
+        # }
+
+        # 判断是否输入单号
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入付款单号')
+        # 判断单号的合法性
+        if RP_NO[:4] != 'PTYC' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('付款单号输入不合法,单号必须是PTYC开头且长度必须是11位')
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','2')
+        if row_ZL_NO <= 0:
+            return http.HttpResponseForbidden('单号不存在')
+        with connection.cursor() as cursor:
+
+            sid = transaction.savepoint()  # 开启事物
+            try:
+                # 获取原单付款单总金额用于扣减预付款单总金额
+                sum_TF_MON=cursor.execute("""SELECT ISNULL(AMTN_CLS,0) FROM TF_MON WHERE RP_NO=%s AND RP_ID='2'""",[RP_NO]).fetchall()[0][0]
+                #获取预付款单单号
+                TF_MON_NO = cursor.execute("""SELECT IRP_NO FROM TF_MON1 WHERE RP_NO=%s AND RP_ID='2'""", [RP_NO]).fetchall()[0][0]
+                # 修改预付款扣款金额
+                cursor.execute("""UPDATE TF_MON SET AMTN_CLS=ISNULL(AMTN_CLS,0)-%s WHERE RP_NO=%s AND RP_ID='2'""", [sum_TF_MON,TF_MON_NO])
+                # 以列表的形式获取付款单的立账单号
+                TC_MON_RP_NO = cursor.execute("""SELECT ARP_NO FROM TC_MON WHERE RP_NO=%s AND RP_ID='2'""", [RP_NO]).fetchall()
+                # 遍历列表得到每一张立账单号
+                for i in TC_MON_RP_NO:
+                    print(i[0])  #立账单号
+                    # 更新立账金额
+                    # 回写立账单的数据
+                    # 获取原单已冲金额未冲金额
+                    # AMTN_RCV 已经冲金额   AMT未冲金额===========================================================
+                    ATM_MF_ARP = cursor.execute("""SELECT ISNULL(AMTN_RCV,0),ISNULL(AMT,0) FROM MF_ARP  WHERE ARP_NO=%s""",[i[0]]).fetchall()
+                    AMTN_RCV = ATM_MF_ARP[0][0]  # 原单已经冲金额
+                    AMT = ATM_MF_ARP[0][1]  # 原单未冲金额
+                    cursor.execute(
+                        """UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)-%s,AMT=ISNULL(AMTN,0)-ISNULL(AMTN_RCV,0)-%s WHERE ARP_NO=%s""",
+                        [AMTN_RCV,AMT,i[0]])
+
+                    # AMTN_RCV   已冲金额     ISNULL(AMTN_RCV,0)+%s
+                    # AMT   未冲金额  ISNULL(AMT,0)-%s
+                    # BIL_NO  开票单号
+
+                    # 如果单据已经冲完,结案掉立账单,还有进货的立账结案标识
+                    row_AMT = cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ),BIL_NO FROM MF_ARP WHERE ARP_NO=%s",[i[0]]).fetchall()[0][0]
+                    if row_AMT <= 0:
+                        cursor.execute("""UPDATE MF_ARP SET CLOSE_ID='F' WHERE ARP_NO=%s""", [i[0]])
+                        cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='F',CLSLZ='F' WHERE PS_NO=%s""",['PC' + i[0][2::]])
+                # 删除扣款单
+                cursor.execute("""DELETE FROM TF_MON1 WHERE RP_NO=%s AND RP_ID='2'""", [RP_NO])
+                #删除付款单表头
+                cursor.execute("""DELETE FROM TF_MON WHERE RP_NO=%s AND RP_ID='2'""", [RP_NO])
+                #删除付款单表身
+                cursor.execute("""DELETE FROM TC_MON WHERE RP_NO=%s AND RP_ID='2'""", [RP_NO])
+                #删除付款记录
+                cursor.execute("""DELETE FROM MF_MON WHERE RP_NO=%s AND RP_ID='2'""", [RP_NO])
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("预计冲应该付作业修改单据sql语句执行异常")
+            transaction.savepoint_commit(sid)
+        context = {
+            'a': 'delete预付冲应付作业'
+        }
+        return http.JsonResponse(context)
+
+
+
+
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab

+ 12 - 0
awj/awj/apps/salesinvoice/urls.py

@@ -1,3 +1,4 @@
+<<<<<<< HEAD
 from django.conf.urls import url
 from . import views
 
@@ -6,4 +7,15 @@ urlpatterns = [
     url(r'^proceeds/$',views.proceedsView.as_view()),  #收款单
     url(r'^predictproceeds/$',views.predictProceedsView.as_view()), #预收款
     url(r'^predictpayment/$',views.predictPaymentView.as_view()), #预收冲款款
+=======
+from django.conf.urls import url
+
+from . import views
+
+urlpatterns = [
+    url(r'^sales/$',views.salesView.as_view()),  #销货开票
+    url(r'^proceeds/$',views.proceedsView.as_view()),  #收款单
+    url(r'^predictproceeds/$',views.predictProceedsView.as_view()), #预收款
+    url(r'^predictpayment/$', views.predictPaymentView.as_view()),  # 预收冲款款
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
 ]

+ 1080 - 0
awj/awj/apps/salesinvoice/views.py

@@ -1,3 +1,4 @@
+<<<<<<< HEAD
 import json
 
 import re
@@ -1143,4 +1144,1083 @@ class predictPaymentView(View):
         context = {
             'a': 'delete预收冲应冲作业'
         }
+=======
+import datetime
+import json
+import re
+
+from django import http
+from django.db import connection, transaction
+# Create your views here.
+from django.views import View
+
+from utils.cust_data import customer_data
+from utils.et_CACC_NO import et_CACC_NO
+from utils.examine_ood import examine_ood
+from utils.usr_data import usr_data
+
+
+# 销货开票
+class salesView(View):
+    @transaction.atomic
+    def get(self, request):
+        context = {
+            'a': 'get预付冲应付作业'
+        }
+        # HttpResponse(content=响应体,content_type=响应体数据MIME类型,status=状态码)
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def post(self, request):
+        # 1,获取参数
+        ZL_NO = request.POST.get("ZL_NO")  # 单据号码    1         字符型
+        LZ_DD = request.POST.get("LZ_DD")  # 单据日期    1         字符型
+        INV_NO = request.POST.get("INV_NO")  # 发票号码    1       字符型
+        # INV_DD = request.POST.get("INV_DD")   #发票日期     1      字符型               不需要
+        ZHANG_ID = request.POST.get("ZHANG_ID")  # 立账方式   1    字符型  2开票 1直接立账
+        # TAX_ID = request.POST.get("TAX_ID")   #扣税类别   1         字符型                    不需要
+        AMT = request.POST.get("AMT")  # 开票金额        1          数字型
+        CUS_NO = request.POST.get("CUS_NO")  # 开票客户编码    1    字符型
+        CUS_NO_NAME = request.POST.get("CUS_NO_NAME")  # 开票客户名称     1       字符型
+        UNI_NO_BUY = request.POST.get("UNI_NO_BUY")  # 纳税人识别码   1           字符型
+        BUY_ADR = request.POST.get("BUY_ADR")  # 开票客户地址   1                 字符型
+        BUY_TEL = request.POST.get("BUY_TEL")  # 开票客户电话   1                 字符型
+        BUY_KH_BANK = request.POST.get("BUY_KH_BANK")  # 开户账号   1            字符型
+        USR = request.POST.get("USR")  # 制单人编码   1                           字符型
+        USR_NAME = request.POST.get("USR_NAME")  # 制单人姓名   1                字符型
+        BUY_ID_CODE = request.POST.get("BUY_ID_CODE")  # 开户银行账号   1       字符型
+        REM = request.POST.get("REM")  # 发票备注   1
+
+        print(UNI_NO_BUY)  #纳税人识别码
+        print(BUY_ID_CODE)  #开户银行账户
+        print(BUY_KH_BANK)  #开户账号
+        print(BUY_TEL)  #电话号码
+        print(BUY_ADR) #地址
+        # 判断单号的合法性
+        if ZL_NO[:3]!='LZS' or len(ZL_NO)!=10:
+            return http.HttpResponseForbidden('开票单号输入不合法,单号必须是LZS开头且长度必须是10位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(LZ_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if  ZL_NO is None:
+            return http.HttpResponseForbidden('请输入开票单号')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMT)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
+        if ZHANG_ID is None:
+            return http.HttpResponseForbidden('请输入开票方式')
+        # 判断立账方式是否有效
+        if int(ZHANG_ID) != 1 and int(ZHANG_ID) != 2:
+            return http.HttpResponseForbidden('立账方式只能是1(开票),2(不开票)')
+        # 判断开票单号是否存在
+        if int(ZHANG_ID) == 2:
+            row_ZL_NO = examine_ood('MF_LZ', 'LZ_NO', ZL_NO, 'LZ_ID', 'LZ')
+            print(row_ZL_NO)
+            if row_ZL_NO > 0:
+                return http.HttpResponseForbidden('销货开票单号已存在')
+
+        # 判断客户资料是否存在,不存在则创建
+        row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '1', datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'))
+
+        # 判断用户是否存在,不存在则创建
+        row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'))
+
+        with connection.cursor() as cursor:
+            #直接开发票
+            if int(ZHANG_ID) == 2:
+                # cursor.execute("""UPDATE TF_PSS SET AMT_FP=%s,AMTN_NET_FP=%s WHERE PS_NO=%s""",[AMT, AMT, 'PC' + ZL_NO[2::]])
+                sid = transaction.savepoint()  # 开启事物
+                try:
+                    # 插入销货单表头
+                    cursor.execute("""INSERT INTO MF_PSS(PS_ID,PS_NO,PS_DD,CUS_NO,ZHANG_ID,USR,CHK_MAN,CLS_DATE,SYS_DATE,AMT,EXC_RTO,LZ_CLS_ID,CLSLZ,TAX_ID,YD_ID)
+                    VALUES('SA',%s,%s,%s,3,%s,%s,%s,%s,%s,1,'F','F',1,'T')""",
+                    [ 'SA' + ZL_NO[2::], datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), CUS_NO,USR,USR,datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),
+                    datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),AMT])
+                    #插入销货单表身
+                    cursor.execute("""INSERT INTO TF_PSS(PS_ID,PS_NO,PS_DD,WH,PRD_NO,PRD_NAME,QTY,UP,AMT,AMTN_NET,TAX_RTO,ITM,UNIT,CSTN_SAL,PRE_ITM)
+                    VALUES('SA',%s,%s,'0000','AQ002','安装费用',1,1,%s,%s,5,1,1,%s,1)""",['SA' + ZL_NO[2::], datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), AMT,AMT,AMT])
+                    #插入发票
+                    cursor.execute("""INSERT INTO INV_NO (BIL_NO,INV_NO,BIL_ID,INV_ID,CUS_NO,TITLE_BUY,TITLE_PAY,AMT,TAX_ID1,TAX_ID2,INV_TT,INV_DD,UNI_NO_BUY,BUY_ADR,BUY_TEL,BUY_KH_BANK,BUY_ID_CODE,REM)
+                    VALUES(%s,%s,'LZ',21,%s,%s,%s,%s,1,1,1,%s,%s,%s,%s,%s,%s,%s)""",[ZL_NO, INV_NO, CUS_NO, CUS_NO_NAME, CUS_NO_NAME, AMT,datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),
+                    UNI_NO_BUY, BUY_ADR, BUY_TEL, BUY_KH_BANK, BUY_ID_CODE, REM])
+                    #插入立账单
+                    cursor.execute("""INSERT INTO MF_ARP(ARP_ID,OPN_ID,ARP_NO,BIL_NO,CUS_NO,PAY_DD,INV_NO,AMT,AMTN,AMTN_NET,EXC_RTO,CLOSE_ID,BIL_ID,SYS_DATE,BIL_DD)VALUES
+                    (1,2,%s,%s,%s,%s,%s,%s,%s,%s,1,'F','LZ',%s,%s)""",['AR' + ZL_NO[2::], ZL_NO, CUS_NO,datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),
+                    INV_NO,AMT,AMT,AMT,datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),datetime.datetime.strptime(LZ_DD, '%Y-%m-%d')])
+                    #插入开票单表头
+                    cursor.execute("""INSERT INTO MF_LZ(LZ_ID,LZ_NO,PAY_DD,LZ_DD,CUS_NO,INV_NO,EXC_RTO,USR,CHK_MAN,AMT,AMTN_NET,ARP_NO,CLS_DATE,TAX_ID,ZHANG_ID,SYS_DATE,VOH_CHK,TURN_ID,INV_BIL_ID,INV_BIL_NO,FLG_VOH)VALUES
+                    ('LZ',%s,%s,%s,%s,%s,1,%s,%s,%s,%s,%s,%s,'1',3,%s,1,1,'LZ',%s,'F')""",
+                    [ZL_NO,datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),CUS_NO,INV_NO,USR,USR, AMT,AMT, 'AR' + ZL_NO[2::],datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),
+                     datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),ZL_NO])
+                    # 插入开票单表身
+                    cursor.execute("""INSERT INTO TF_LZ(LZ_ID,LZ_NO,ITM,CK_NO,AMT,AMTN_NET,PRD_NO,EST_ITM,PAY_DD,TAX_RTO,QTY,UP,BIL_ID,UNIT,PRD_NAME,CUS_NO,UP_ZG,PRE_ITM)VALUES
+                    ('LZ',%s,1,%s,%s,%s,'AQ002',1,%s,5,1,1,'SA',1,'安装费用',%s,1,1)""",[ZL_NO, 'SA' + ZL_NO[2::],AMT,AMT,datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), CUS_NO])
+                    # 修改销货单开票金额
+                    cursor.execute("""UPDATE TF_PSS SET AMT_FP=ISNULL(AMT_FP,0)+%s,AMTN_NET_FP=ISNULL(AMTN_NET_FP,0)+%s WHERE PS_NO=%s AND PS_ID='SA'""",[AMT, AMT, 'SA' + ZL_NO[2::]])
+                except Exception:
+                    transaction.savepoint_rollback(sid)  # 语句执行错误,进行语句回滚
+                    return http.HttpResponseForbidden("删除新增销货开票作业sql语句执行错误")
+                transaction.savepoint_commit(sid)  # 提交事物
+        context = {
+            'a': 'post新增销货开票作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def put(self, request):
+
+        # 获取传过来的参数
+        req_data = json.loads(request.body.decode())
+
+        ZL_NO = req_data.get("ZL_NO")  # 单据号码    1
+        LZ_DD = req_data.get("LZ_DD")  # 单据日期    1
+        INV_NO = req_data.get("INV_NO")  # 发票号码    1
+        # INV_DD = req_data.get("INV_DD")  # 发票日期     1
+        ZHANG_ID = req_data.get("ZHANG_ID")  # 立账方式   1
+        # TAX_ID = req_data.get("TAX_ID")  # 扣税类别   1
+        AMT = req_data.get("AMT")  # 开票金额        1                  不需要
+        CUS_NO = req_data.get("CUS_NO")  # 开票客户编码    1
+        CUS_NO_NAME = req_data.get("CUS_NO_NAME")  # 开票客户名称     1
+        UNI_NO_BUY = req_data.get("UNI_NO_BUY")  # 纳税人识别码   1
+        BUY_ADR = req_data.get("BUY_ADR")  # 开票客户地址   1
+        BUY_TEL = req_data.get("BUY_TEL")  # 开票客户电话   1
+        BUY_KH_BANK = req_data.get("BUY_KH_BANK")  # 开户账号   1
+        USR = req_data.get("USR")  # 制单人编码   1
+        USR_NAME = req_data.get("USR_NAME")  # 制单人姓名   1
+        BUY_ID_CODE = req_data.get("BUY_ID_CODE")  # 开户银行账号   1
+        REM = req_data.get("REM")  # 发票备注   1
+        UP_DD = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 修改时间
+        print(UNI_NO_BUY)  # 纳税人识别码
+        print(BUY_ID_CODE)  # 开户银行账户
+        print(BUY_KH_BANK)  # 开户账号
+        print(BUY_TEL)  # 电话号码
+        print(BUY_ADR)  # 地址
+        # {
+        #     "ZL_NO": "LZS9A300001",
+        #     "LZ_DD": "2019-10-30",
+        #     "INV_NO": "000001111122222",
+        #     "ZHANG_ID": "2",
+        #     "AMT": 89,
+        #     "CUS_NO": "AB0001",
+        #     "CUS_NO_NAME": "天心软件",
+        #     "UNI_NO_BUY": "443222222222222222",
+        #     "BUY_ADR": "广州天河华港上午大厦",
+        #     "BUY_TEL": "13444567876",
+        #     "BUY_KH_BANK": "01",
+        #     "USR": "A10000",
+        #     "USR_NAME": "楠楠",
+        #     "BUY_ID_CODE": "43112919941002",
+        #     "REM": "我的备注"
+        # }
+
+        # 判断单号的合法性
+        if ZL_NO[:3] != 'LZS' or len(ZL_NO) != 10:
+            return http.HttpResponseForbidden('开票单号输入不合法,单号必须是LZS开头且长度必须是10位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(LZ_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if ZL_NO is None:
+            return http.HttpResponseForbidden('请输入开票单号')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMT)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
+        if ZHANG_ID is None:
+            return http.HttpResponseForbidden('请输入开票方式')
+        # 判断立账方式是否有效
+        if int(ZHANG_ID) != 1 and int(ZHANG_ID) != 2:
+            return http.HttpResponseForbidden('立账方式只能是1(开票),2(不开票)')
+        row_TC_MON = examine_ood('TC_MON', 'RP_NO', 'AR' + ZL_NO[2::], 'RP_ID', '1')
+        # 判断是否产生付款单
+        if row_TC_MON>0:
+            return http.HttpResponseForbidden('已经产生付款单部允许修改')
+        # 判断进货单号是存在
+        if int(ZHANG_ID) == 1:
+            row_ZL_NO = examine_ood('MF_PSS', 'PS_NO', 'SA' + ZL_NO[2::], 'PS_ID', 'SA')
+            if row_ZL_NO <= 0:
+                return http.HttpResponseForbidden('销货单号不存在')
+        # 判断开票单号是否存在
+        if int(ZHANG_ID) > 2:
+            row_ZL_NO = examine_ood('MF_LZ', 'LZ_NO', ZL_NO, 'LZ_ID', 'LZ')
+            if row_ZL_NO <= 0:
+                return http.HttpResponseForbidden('销货开票单号不存在')
+        # 判断厂商是否存在,不存在则自动创建
+        row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '1', datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'))
+
+        # 判断用户是否存在,不存在则创建
+        row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'))
+        with connection.cursor() as cursor:
+            #进货开票
+            if int(ZHANG_ID)==2:
+                sid = transaction.savepoint()  # 开启事物
+                try:
+                    # 修改进货单表头
+                    cursor.execute("""UPDATE MF_PSS SET PS_DD=%s,CUS_NO=%s,ZHANG_ID=%s,AMT=%s,MODIFY_DD=%s,MODIFY_MAN=USR WHERE PS_NO=%s AND PS_ID='SA'""",
+                    [datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), CUS_NO,ZHANG_ID,AMT,UP_DD,'SA'+ZL_NO[2::]])
+                    #修改进货单表身
+                    cursor.execute("""UPDATE TF_PSS SET PS_DD=%s,UP=%s,AMTN_NET=%s,CSTN_SAL=%s,AMT=%s,AMT_FP=%s,AMTN_NET_FP=%s WHERE PS_NO=%s AND PS_ID='SA'""",
+                    [datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), AMT, AMT, AMT, AMT, AMT, AMT, 'SA' + ZL_NO[2::]])
+                    # 修改发票记录
+                    cursor.execute(
+                        """UPDATE INV_NO SET INV_NO=%s,CUS_NO=%s,TITLE_BUY=%s,TITLE_PAY=%s,AMT=%s,INV_DD=%s,UNI_NO_BUY=%s,BUY_ADR=%s,BUY_TEL=%s,BUY_KH_BANK=%s,BUY_ID_CODE=%s,REM=%s WHERE BIL_NO=%s AND BIL_ID='LZ'""",
+                        [INV_NO, CUS_NO, CUS_NO_NAME, CUS_NO_NAME, AMT, LZ_DD, UNI_NO_BUY, BUY_ADR, BUY_TEL, BUY_KH_BANK,BUY_ID_CODE, REM, ZL_NO])
+                    # 修改立账单MF_MRP
+                    cursor.execute("""UPDATE MF_ARP SET CUS_NO=%s,PAY_DD=%s,INV_NO=%s,AMT=%s,AMTN=%s,AMTN_NET=%s,SYS_DATE=%s WHERE ARP_NO=%s AND BIL_ID='LZ'""",
+                        [CUS_NO, datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),INV_NO, AMT, AMT, AMT, datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), 'AR' + ZL_NO[2::]])
+                    # 插入进货开票表头
+                    cursor.execute("""UPDATE MF_LZ SET PAY_DD=%s,LZ_DD=%s,CUS_NO=%s,INV_NO=%s,AMT=%s,AMTN_NET=%s,MODIFY_DD=%s,MODIFY_MAN=USR WHERE LZ_NO=%s AND LZ_ID='LZ'""",
+                        [datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),CUS_NO, INV_NO, AMT, AMT, UP_DD, ZL_NO])
+                    # 修改进货开票表身
+                    cursor.execute("""UPDATE TF_LZ SET AMT=%s,AMTN_NET=%s,CUS_NO=%s WHERE LZ_NO=%s AND LZ_ID='LZ'""",[AMT, AMT, CUS_NO, ZL_NO])
+                    # 修改开完发票回写进货单表身已开金额
+                    cursor.execute("""UPDATE TF_PSS SET AMT_FP=%s,AMTN_NET_FP=%s WHERE PS_NO=%s AND PS_ID='SA'""",[AMT, AMT, 'SA' + ZL_NO[2::]])
+                except Exception:
+                    transaction.savepoint_rollback(sid)  # 语句执行错误,进行语句回滚
+                    return http.HttpResponseForbidden("修改销货开票作业sql语句执行错误")
+                transaction.savepoint_commit(sid)  # 提交事物
+        context = {
+            'a': 'put修改销货开票作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def delete(self, request):
+        # 获取传过来的参数
+        req_data = json.loads(request.body.decode())
+        ZL_NO = req_data.get("ZL_NO")  # 单据号码
+        ZHANG_ID = req_data.get("ZHANG_ID")  # 立账方式
+        # {
+        #     "ZL_NO": "LZS9B01001",
+        #     "ZHANG_ID": "2"
+        # }
+        if ZL_NO is None:
+            return http.HttpResponseForbidden('请传入开票单号')
+        if ZHANG_ID is None:
+            return http.HttpResponseForbidden('请传入开票类型')
+        # 判断立账方式是否有效
+        if int(ZHANG_ID) != 1 and int(ZHANG_ID) != 2:
+            return http.HttpResponseForbidden('立账方式只能是1(开票),2(不开票)')
+        # 判断是否产生付款单
+        row_TC_MON = examine_ood('TC_MON', 'RP_NO', 'AR' + ZL_NO[2::], 'RP_ID', '1')
+        if row_TC_MON > 0:
+            return http.HttpResponseForbidden('已经产生付款单不允许修改')
+        # 判断进货单号是存在
+        if int(ZHANG_ID) == 1:
+            row_ZL_NO = examine_ood('MF_PSS', 'PS_NO', 'SA' + ZL_NO[2::], 'PS_ID', 'SA')
+            if row_ZL_NO <= 0:
+                return http.HttpResponseForbidden('进货单号不存在')
+        # 判断开票单号是否存在
+        if int(ZHANG_ID) == 2:
+            row_ZL_NO = examine_ood('MF_LZ', 'LZ_NO', ZL_NO, 'LZ_ID', 'LZ')
+            if row_ZL_NO <= 0:
+                return http.HttpResponseForbidden('开票单号不存在')
+
+        with connection.cursor() as cursor:
+            if int(ZHANG_ID) == 2:
+                # 判断是否产生后续单据
+                sql = "SELECT COUNT(*) FROM %s WHERE %s='%s'" % ('TC_MON', 'ARP_NO', 'AR' + ZL_NO[2::])
+                row_ZL_NO = cursor.execute(sql).fetchall()[0][0]
+                if row_ZL_NO > 0:
+                    return http.HttpResponseForbidden('开票单或进货单已产生后续收付款单')
+                sid = transaction.savepoint()  # 开启事物
+                try:
+                    # 删除进货来票作业表头
+                    cursor.execute("""DELETE FROM TF_LZ WHERE  LZ_NO=%s AND LZ_ID='LZ'""", [ZL_NO])
+                    # 删除进货开票作业表身
+                    cursor.execute("""DELETE FROM MF_LZ WHERE  LZ_NO=%s AND LZ_ID='LZ'""", [ZL_NO])
+                    # 删除立账金额单据
+                    cursor.execute("""DELETE FROM MF_ARP WHERE BIL_NO=%s AND BIL_ID='LZ'""", [ZL_NO])
+                    # 删除发票单据
+                    cursor.execute("""DELETE FROM INV_NO  WHERE BIL_NO=%s AND BIL_ID='LZ'""", [ZL_NO])
+                    # 删除进货单表身单据
+                    cursor.execute("""DELETE FROM MF_PSS WHERE PS_NO=%s AND PS_ID='SA'""", ['SA' + ZL_NO[2::]])
+                    # 删除进货单表头单据
+                    cursor.execute("""DELETE FROM TF_PSS WHERE PS_NO=%s AND PS_ID='SA'""", ['SA' + ZL_NO[2::]])
+                except Exception:
+                    transaction.savepoint_rollback(sid)  # 语句执行错误,进行语句回滚
+                    return http.HttpResponseForbidden("删除销货销货开票作业sql语句执行错误")
+                transaction.savepoint_commit(sid)  # 提交事物
+        context = {
+            'a': 'delete删除销货开票作业'
+        }
+        return http.JsonResponse(context)
+
+# 销货收款
+class proceedsView(View):
+
+    @transaction.atomic
+    def get(self, request):
+        context = {
+            'a': 'get销货收款作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def post(self, request):
+        # 获取参数
+        RP_NO = request.POST.get("RP_NO")  # 付款单号         字符类型
+        RP_DD = request.POST.get("RP_DD")  # 付款日期            字符类型
+        CUS_NO = request.POST.get("CUS_NO")  # 付款客户编码        字符类型
+        AMTN_BC = request.POST.get("AMTN_BC")  # 付款金额            数字类型
+        CACC_NO = request.POST.get("CACC_NO")  # 付款银行编码          字符类型
+        USR = request.POST.get("USR")  # 制单人编码                   字符类型
+        USR_NAME = request.POST.get("USR_NAME")  # 制单人姓名         字符类型
+        MF_LZ1 = request.POST.get("MF_LZ1")  # 进货开票单号         字符类型
+
+        # 判断单号的合法性
+        if RP_NO[:3] != 'RTS' or len(RP_NO) != 10:
+            return http.HttpResponseForbidden('收款单号输入不合法,单号必须是RTS开头且长度必须是10位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入收款单号')
+        # //判断有没有输入银行账号
+        sum_CACC_NO = et_CACC_NO(CACC_NO)
+        if sum_CACC_NO == 'NO':
+            return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMTN_BC)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO, 'RP_ID', '1')
+        if row_ZL_NO > 0:
+            return http.HttpResponseForbidden('付款单号已存在')
+
+        # 判断用户是否存在,不存在则创建
+        row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
+
+        with connection.cursor() as cursor:
+            # 判断开票单号是否存在
+            MF_LZ1_NO = cursor.execute("""SELECT COUNT(*) FROM MF_ARP WHERE ARP_NO=%s""", ['AR' + MF_LZ1[2::]]).fetchall()[0][0]
+            if MF_LZ1_NO<=0:
+                return http.HttpResponseForbidden('开票单号不存在')
+            # 获取银行账号的会计科目
+            Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+            if Acc_No_km == '':
+                return http.HttpResponseForbidden('银行会计科目不存在')
+            sid = transaction.savepoint()  # 开启事物
+            try:
+                # 插入收款单表头
+                cursor.execute("""INSERT INTO TF_MON(IRP_ID,RP_NO,ITM,RP_ID,CLS_ID,RP_DD,CUS_NO,INCLUDESON,AMTN_BC,AMTN_CLS,BC_NO,CACC_NO,EXC_RTO,DEP,USR,CHK_MAN,CLS_DATE,SYS_DATE,
+                IEA_ID,IOR_ID,SK_TYPE)VALUES('F',%s,1,1,'T',%s,%s,'F',%s,%s,%s,%s,1,'0000',%s,%s,%s,%s,'F','F',1)""",[RP_NO, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CUS_NO,
+                AMTN_BC, AMTN_BC,'BT' + RP_NO[2::], CACC_NO, USR, USR, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),datetime.datetime.strptime(RP_DD, '%Y-%m-%d')])
+
+                #插入收款单表身
+                cursor.execute("""INSERT INTO TC_MON(RP_ID,RP_NO,ITM,ITM2,ARP_NO,AMTN_CLS,ARP_OPN_ID,RP_DD,CUS_NO,PRE_ITM)values
+                (1,%s,1,1,%s,%s,2,%s,%s,1)""",[RP_NO, 'AR' + MF_LZ1[2::], AMTN_BC, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CUS_NO])
+
+                #插入收款单回写金额表
+                cursor.execute("""INSERT INTO MF_MON(RP_ID,RP_NO,RP_DD,DEP,AMTN,AMTN_ARP,AMTN_REST,FJ_NUM)VALUES
+                (1,%s,%s,'0000',%s,%s,%s,0)""",[RP_NO, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), AMTN_BC, AMTN_BC, AMTN_BC])
+
+                #插入账户收支单表头
+                cursor.execute("""INSERT INTO MF_BAC(BB_ID,BB_NO,BB_DD,BACC_NO,ACC_NO,DEP,BIL_NO,EXC_RTO,AMTN,USR,CHK_MAN,OPN_ID,CLS_DATE,SYS_DATE,BIL_ID_N,BIL_NO_N)VALUES
+                ('BT',%s,%s,%s,%s,'0000',%s,1,%s,%s,%s,'F',%s,%s,'RT',%s)""",['BT' + RP_NO[2::], datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CACC_NO, Acc_No_km,
+                'PT' + RP_NO, float(AMTN_BC), USR, USR, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), RP_NO])
+
+                # 插入账户收支单表身
+                cursor.execute("""INSERT INTO TF_BAC(BB_ID,BB_NO,ITM,BB_DD,EXC_RTO,AMTN,DEP,CUS_NO,ADD_ID,PRE_ITM)values
+                ('BT',%s,1,%s,1,%s,'0000',%s,'+',1)""",['BT' + RP_NO[2::], datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), AMTN_BC, CUS_NO])
+
+                # 回写立账单的数据
+                cursor.execute("""UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)+%s,AMT=ISNULL(AMTN,0)-ISNULL(AMTN_RCV,0)-%s WHERE BIL_NO=%s""",[AMTN_BC, AMTN_BC, MF_LZ1])
+                # AMTN_RCV   已冲金额     ISNULL(AMTN_RCV,0)+%s
+                # AMT   未冲金额  ISNULL(AMT,0)-%s
+                # BIL_NO  开票单号
+
+                # 如果单据已经冲完,结案掉立账单,还有进货的立账结案标识
+                row_AMT = cursor.execute("SELECT ISNULL(AMT,0) FROM MF_ARP WHERE BIL_NO=%s", [MF_LZ1]).fetchall()[0][0]
+                if row_AMT <= 0:
+                    cursor.execute("""UPDATE MF_ARP SET CLOSE_ID='T' WHERE BIL_NO=%s""", [MF_LZ1])
+                    cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='T',CLSLZ='T' WHERE PS_NO=%s""", ['SA' + MF_LZ1[2::]])
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("新增收款单sql语句执行异常")
+            transaction.savepoint_commit(sid)
+        context = {
+            'a': 'post新增收款作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def put(self, request):
+
+        req_data = json.loads(request.body.decode())
+        # 获取参数
+        RP_NO = req_data.get("RP_NO")  # 付款单号         字符类型
+        RP_DD = req_data.get("RP_DD")  # 付款日期            字符类型
+        AMTN_BC = req_data.get("AMTN_BC")  # 付款金额            数字类型
+        CACC_NO = req_data.get("CACC_NO")  # 付款银行编码          字符类型
+        MF_LZ1 = req_data.get("MF_LZ1")  # 进货开票单号         字符类型
+        UP_DD = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 修改时间
+
+        # {
+        #     "RP_NO":"RTX9A300002",
+        #     "RP_DD":"2019-10-30",
+        #     "AMTN_BC":199,
+        #     "CACC_NO":"01",
+        #     "MF_LZ1":"LZS9A300001"
+        # }
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入收款单号')
+        # //判断有没有输入银行账号
+        sum_CACC_NO = et_CACC_NO(CACC_NO)
+        if sum_CACC_NO == 'NO':
+            return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMTN_BC)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO, 'RP_ID', '1')
+        if row_ZL_NO <= 0:
+            return http.HttpResponseForbidden('收款单号不存在')
+        with connection.cursor() as cursor:
+            # 判断开票单号是否存在
+            MF_LZ1_NO = cursor.execute("""SELECT COUNT(*) FROM TC_MON WHERE ARP_NO=%s""", ['AR' + MF_LZ1[2::]]).fetchall()[0][0]
+
+            if MF_LZ1_NO <= 0:
+                return http.HttpResponseForbidden('开票单号不存在')
+            # 获取银行账号的会计科目
+            Acc_No_km = cursor.execute("""SELECT Acc_No FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+            if Acc_No_km == '':
+                return http.HttpResponseForbidden('银行会计科目不存在')
+
+            # 缓存之前冲款的金额用于回写立账冲款数据
+            row_AMTN = cursor.execute("""SELECT AMTN_BC FROM TF_MON WHERE RP_NO=%s AND RP_ID='1'""", [RP_NO]).fetchall()[0][0]
+            sid = transaction.savepoint()  # 开启事物
+            try:
+                # 修改付款单表头
+                cursor.execute(
+                    """UPDATE TF_MON SET RP_DD=%s,AMTN_BC=%s,CACC_NO=%s,MODIFY_DD=%s,MODIFY_MAN=USR,AMTN_CLS=%s WHERE RP_NO=%s AND RP_ID='1'""",
+                    [RP_DD, AMTN_BC, CACC_NO, UP_DD,AMTN_BC, RP_NO])
+
+                # 修改付款单表身
+                cursor.execute("""UPDATE TC_MON SET RP_DD=%s,AMTN_CLS=%s WHERE RP_NO=%s AND RP_ID='1'""",[RP_DD, AMTN_BC, RP_NO])
+
+                # 修改回冲金额表
+                cursor.execute("""UPDATE MF_MON SET AMTN=AMTN+%s-%s,AMTN_REST=AMTN+%s-%s WHERE RP_NO=%s AND RP_ID='1'""",
+                               [AMTN_BC, float(row_AMTN), AMTN_BC, float(row_AMTN), RP_NO])
+
+                # 修改账户收支单表头
+                cursor.execute("""UPDATE MF_BAC SET BB_DD=%s,BACC_NO=%s,ACC_NO=%s,AMTN=%s WHERE BB_NO=%s AND BB_ID='BT'""",
+                               [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CACC_NO, Acc_No_km, -float(AMTN_BC),'BT' + RP_NO[2::]])
+
+                # 修改账户收支单表身
+                cursor.execute("""UPDATE TF_BAC SET BB_DD=%s,AMTN=%s WHERE BB_NO=%s AND BB_ID='BT'""",
+                               [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), AMTN_BC, 'BT' + RP_NO[2::]])
+
+                # 回写立账单的数据需要减去之前冲款的金额  row_AMTN
+                cursor.execute("""UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)+%s-%s,AMT=ISNULL(AMT,0)-%s+%s WHERE BIL_NO=%s AND BIL_ID='LZ'""",[AMTN_BC, float(row_AMTN), AMTN_BC, float(row_AMTN), MF_LZ1])
+
+                # 如果单据已经冲完,结案掉立账单,还有进货的立账结案标识
+                row_AMT = cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ),BIL_NO FROM MF_ARP WHERE BIL_NO=%s AND BIL_ID='LZ'",
+                               [MF_LZ1]).fetchall()[0][0]
+                if row_AMT > 0:
+                    cursor.execute("""UPDATE MF_ARP SET CLOSE_ID='F' WHERE BIL_NO=%s AND BIL_ID='LZ'""", [MF_LZ1])
+                    cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='F',CLSLZ='T' WHERE PS_NO=%s AND PS_ID='SA'""",['SA' + MF_LZ1[2::]])
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("修改收款单sql语句执行异常")
+            transaction.savepoint_commit(sid)
+        context = {
+            'a': 'put修改收款作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def delete(self, request):
+        # 获取参数
+        req_data = json.loads(request.body.decode())
+        RP_NO = req_data.get("RP_NO")  # 付款单号         字符类型
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入收款单号')
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO, 'RP_ID', '1')
+        if row_ZL_NO <= 0:
+            return http.HttpResponseForbidden('收款单号不存在')
+
+        with connection.cursor() as cursor:
+
+            # 获取原单付款单总金额用于扣减预付款单总金额
+            AMTN_BC = cursor.execute("""SELECT ISNULL(AMTN_CLS,0) FROM TF_MON WHERE RP_NO=%s AND RP_ID='1'""", [RP_NO]).fetchall()[0][0]
+            # 获取开票单号
+            MF_LZ1 = cursor.execute("""SELECT ARP_NO FROM TC_MON WHERE RP_NO=%s AND RP_ID='1'""", [RP_NO]).fetchall()[0][0]
+            MF_LZ1 = 'LZ' + MF_LZ1[2::]
+        # 缓存之前冲款的金额用于回写立账冲款数据
+            row_AMTN = cursor.execute("""SELECT AMTN_BC FROM TF_MON WHERE RP_NO=%s AND RP_ID='1'""", [RP_NO]).fetchall()[0][0]
+            sid = transaction.savepoint()  # 开启事物
+            try:
+                # 删除付款单表头
+                cursor.execute("""DELETE FROM TC_MON WHERE  RP_NO=%s AND RP_ID='1'""", [RP_NO])
+                # 删除付款单表身
+                cursor.execute("""DELETE FROM TF_MON WHERE  RP_NO=%s AND RP_ID='1'""", [RP_NO])
+                # 修改回冲金额表
+                cursor.execute("""DELETE FROM MF_MON WHERE RP_NO=%s AND RP_ID='1'""", [RP_NO])
+                # 删除账户收支单表头
+                cursor.execute("""DELETE FROM MF_BAC WHERE  BB_NO=%s AND BB_ID='BT'""", ['BT' + RP_NO[2::]])
+                # 删除账户收支单表身
+                cursor.execute("""DELETE FROM TF_BAC WHERE  BB_NO=%s AND BB_ID='BT'""", ['BT' + RP_NO[2::]])
+                # 如果金额立账金额等于传过来的金额那么就直接删除
+                row_AMTN_MF_ARP = cursor.execute("""SELECT AMTN FROM MF_ARP WHERE BIL_NO=%s""", [MF_LZ1]).fetchall()[0][0]
+                if float(AMTN_BC) == float(row_AMTN_MF_ARP):
+                    cursor.execute(
+                        """UPDATE MF_ARP SET AMTN_RCV=0,AMT=0 WHERE BIL_NO=%s""", [MF_LZ1])
+                    # 回写立账单的数据需要减去之前冲款的金额  row_AMTN
+                else:
+                    cursor.execute(
+                        """UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)-%s,AMT=ISNULL(AMTN,0)-ISNULL(AMTN_RCV,0) WHERE BIL_NO=%s""",[AMTN_BC, MF_LZ1])
+                # 结案掉立账单, 还有进货的立账结案标识
+                cursor.execute("""UPDATE MF_ARP SET CLOSE_ID='F' WHERE BIL_NO=%s""", [MF_LZ1])
+                cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='F',CLSLZ='T' WHERE PS_NO=%s""", ['SA' + MF_LZ1[2::]])
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("删除收款单sql语句执行异常")
+            transaction.savepoint_commit(sid)
+        context = {
+            'a': 'delete删除收款作业'
+        }
+        return http.JsonResponse(context)
+
+#预收款
+class predictProceedsView(View):
+
+    @transaction.atomic
+    def get(self, request):
+        print('请求内容')
+        context = {
+            'a': 'get预计收款作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def post(self, request):
+        # 获取参数
+        RP_NO = request.POST.get("RP_NO")  # 预付款单号         字符类型   ----------------1
+        RP_DD = request.POST.get("RP_DD")  # 预付款日期            字符类型  --------------------1
+        CUS_NO = request.POST.get("CUS_NO")  # 预付款客户编码        字符类型  -------------------------1
+        CUS_NO_NAME = request.POST.get("CUS_NO_NAME")  # 预付款客户名称       字符类型  ---------------------1
+        AMTN_BC = request.POST.get("AMTN_BC")  # 预付款金额            数字类型  ---------------------------1
+        CACC_NO = request.POST.get("CACC_NO")  # 预付款银行编码          字符类型    ------------1
+        USR = request.POST.get("USR")  # 制单人编码                   字符类型   ------------------1
+        USR_NAME = request.POST.get("USR_NAME")  # 制单人姓名         字符类型   -----------------------1
+
+        # 判断单号的合法性
+        if RP_NO[:4] != 'RTFS' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('预收款单号输入不合法,单号必须是RTFS开头且长度必须是11位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入预收款单号')
+        # //判断有没有输入银行账号
+        sum_CACC_NO = et_CACC_NO(CACC_NO)
+        if sum_CACC_NO == 'NO':
+            return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMTN_BC)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO, 'RP_ID', '1')
+        if row_ZL_NO > 0:
+            return http.HttpResponseForbidden('预付款单号已存在')
+
+        # 判断用户是否存在,不存在则创建
+        row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
+
+        # 判断客户资料是否存在,不存在则创建
+        row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '1', datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
+
+        with connection.cursor() as cursor:
+            # 获取银行账号的会计科目
+            Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+            print(Acc_No_km)
+            if Acc_No_km=='':
+                return http.HttpResponseForbidden('银行会计科目不存在')
+            sid = transaction.savepoint()  # 开启事物
+            try:
+                #插入预收款表头
+                cursor.execute("""INSERT INTO TF_MON(IRP_ID,RP_NO,ITM,RP_ID,CLS_ID,RP_DD,CUS_NO,INCLUDESON,AMTN_BC,AMTN_CLS,BC_NO,CACC_NO,EXC_RTO,DEP,USR,CHK_MAN,CLS_DATE,SYS_DATE,IEA_ID,IOR_ID,SK_TYPE)VALUES
+                                ('T',%s,1,1,'F',%s,%s,'F',%s,0,%s,%s,1,'0000',%s,%s,%s,%s,'F','F',1)""",
+                               [RP_NO, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CUS_NO, AMTN_BC, 'BT' + RP_NO[2::],
+                                CACC_NO, USR, USR, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),
+                                datetime.datetime.strptime(RP_DD, '%Y-%m-%d')])
+                #插入语收款立账金额
+                cursor.execute("""INSERT INTO MF_MON(RP_ID,RP_NO,RP_DD,DEP,AMTN,AMTN_ARP,AMTN_REST,FJ_NUM)VALUES
+                                          (1,%s,%s,'0000',%s,0,0,0)""",
+                               [RP_NO, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), AMTN_BC])
+                # 插入账户收支单表头
+                cursor.execute("""INSERT INTO MF_BAC(BB_ID,BB_NO,BB_DD,BACC_NO,ACC_NO,DEP,BIL_NO,EXC_RTO,AMTN,USR,CHK_MAN,OPN_ID,CLS_DATE,SYS_DATE,BIL_ID_N,BIL_NO_N)VALUES
+                                ('BT',%s,%s,%s,%s,'0000',%s,1,%s,%s,%s,'F',%s,%s,'RT',%s)""",
+                               ['BT' + RP_NO[2::], datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CACC_NO , Acc_No_km,'BT' + RP_NO,
+                                float(AMTN_BC), USR, USR, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),
+                                datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),
+                                RP_NO])
+                # 插入收支单表身
+                cursor.execute("""INSERT INTO TF_BAC(BB_ID,BB_NO,ITM,BB_DD,EXC_RTO,AMTN,DEP,CUS_NO,ADD_ID,PRE_ITM)values
+                                ('BT',%s,1,%s,1,%s,%s,'51','+',1)""",
+                               ['BT' + RP_NO[2::], datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), AMTN_BC, CUS_NO])
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("预收款单新增sql语句执行异常")
+            transaction.savepoint_commit(sid)
+        context = {
+            'a': 'post新增预计收款作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def put(self, request):
+
+        # 获取参数
+        req_data = json.loads(request.body.decode())
+        RP_NO = req_data.get("RP_NO")  # 预付款单号         字符类型   ----------------1
+        RP_DD = req_data.get("RP_DD")  # 预付款日期            字符类型  --------------------1
+        CUS_NO = req_data.get("CUS_NO")  # 预付款客户编码        字符类型  -------------------------1
+        CUS_NO_NAME = req_data.get("CUS_NO_NAME")  # 预付款客户名称       字符类型  ---------------------1
+        AMTN_BC = req_data.get("AMTN_BC")  # 预付款金额            数字类型  ---------------------------1
+        CACC_NO = req_data.get("CACC_NO")  # 预付款银行编码          字符类型    ------------1
+        UP_DD = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 修改时间
+        # {
+        #     "RP_NO":"RTFS9B01002",
+        #     "RP_DD":"2019-11-01",
+        #     "CUS_NO":"AB0001",
+        #     "CUS_NO_NAME":"天心软件",
+        #     "AMTN_BC":159,
+        #     "CACC_NO":"01"
+        # }
+        # 判断单号的合法性
+        if RP_NO[:4] != 'RTFS' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('预收款单号输入不合法,单号必须是RTFS开头且长度必须是11位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入预收款单号')
+        # //判断有没有输入银行账号
+        sum_CACC_NO = et_CACC_NO(CACC_NO)
+        if sum_CACC_NO == 'NO':
+            return http.HttpResponseForbidden('请检查银行账号是否存在或者是否输入正确')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMTN_BC)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO,'RP_ID','1')
+        if row_ZL_NO == 0:
+            return http.HttpResponseForbidden('预付款单号不存在')
+
+        # 判断单号是不是已经产生付款单
+        row_ZL_NO = examine_ood('TF_MON1', 'IRP_NO', RP_NO, 'RP_ID', '1')
+        if row_ZL_NO > 0:
+            return http.HttpResponseForbidden('预付款单已经产生付款单')
+
+        # 判断客户资料是否存在,不存在则创建
+        row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '2', datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
+
+        with connection.cursor() as cursor:
+            # 获取银行账号的会计科目
+            Acc_No_km = cursor.execute("""SELECT Acc_No FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+            if Acc_No_km=='':
+                return http.HttpResponseForbidden('银行会计科目不存在')
+            sid = transaction.savepoint()  # 开启事物
+            try:
+                #修改预付款单
+                cursor.execute("""UPDATE TF_MON SET RP_DD=%s,CUS_NO=%s,AMTN_BC=%s,BC_NO=%s,CACC_NO=%s,MODIFY_DD=%s,MODIFY_MAN=USR WHERE RP_NO=%s""",
+                [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CUS_NO, AMTN_BC, 'BT' + RP_NO[2::], CACC_NO, UP_DD, RP_NO])
+
+                # 修改立账单金额
+                cursor.execute("""UPDATE MF_MON SET RP_DD=%s,AMTN=%s WHERE RP_NO=%s""",[datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), AMTN_BC, RP_NO])
+
+                # 修改账户收支单表头
+                cursor.execute("""UPDATE MF_BAC SET BB_DD=%s,BACC_NO=%s,ACC_NO=%s,BIL_NO=%s,AMTN=%s WHERE BB_NO=%s""",
+                [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CACC_NO, Acc_No_km, 'BT' + RP_NO,float(AMTN_BC), 'BT' + RP_NO[2::]])
+                #修改账户收支单表身
+                cursor.execute("""UPDATE TF_BAC SET BB_DD=%s,AMTN=%s,CUS_NO=%s WHERE BB_NO=%s""",
+                               [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), AMTN_BC, CUS_NO, 'BT' + RP_NO[2::]])
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("预收款单修改sql语句执行异常")
+            transaction.savepoint_commit(sid)
+        context = {
+            'a': 'put修改预计收款作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def delete(self, request):
+        # 获取参数
+        req_data = json.loads(request.body.decode())
+        RP_NO = req_data.get("RP_NO")  # 预付款单号
+        # {
+        #     "RP_NO": "RTX9A300003"
+        # }
+        # 判断单号的合法性
+        if RP_NO[:4] != 'RTFS' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('预收款单号输入不合法,单号必须是RTFS开头且长度必须是11位')
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入预收款单号')
+        # 判断单号是不是已经产生付款单
+        row_ZL_NO = examine_ood('TF_MON1', 'IRP_NO', RP_NO, 'RP_ID', '1')
+        if row_ZL_NO > 0:
+            return http.HttpResponseForbidden('预付款单已经产生付款单')
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO, 'RP_ID', '1')
+        if row_ZL_NO == 0:
+            return http.HttpResponseForbidden('预付款单号不存在')
+        with connection.cursor() as cursor:
+            sid = transaction.savepoint()  # 开启事物
+            try:
+                # 删除付款单
+                cursor.execute("""DELETE FROM TF_MON WHERE RP_NO=%s AND RP_ID='1'""", [RP_NO])
+                # 删除金额立账单
+                cursor.execute("""DELETE FROM MF_MON WHERE RP_NO=%s  AND RP_ID='1'""", [RP_NO])
+                # 删除账户收支单表头
+                cursor.execute("""DELETE FROM MF_BAC WHERE BB_NO=%s""", ['BT' + RP_NO[2::]])
+                # 删除账户收支单表身
+                cursor.execute("""DELETE FROM TF_BAC WHERE BB_NO=%s""", ['BT' + RP_NO[2::]])
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("预收款单删除sql语句执行异常")
+            transaction.savepoint_commit(sid)
+        context = {
+            'a': 'delete删除预计收款作业'
+        }
+        return http.JsonResponse(context)
+
+#预收冲款
+class predictPaymentView(View):
+
+    @transaction.atomic
+    def get(self, request):
+        sid = transaction.savepoint()  # 开启事物
+        try:
+            print(12312)
+        except Exception:
+            transaction.savepoint_rollback(sid)
+            return http.HttpResponseForbidden("预收款单删除sql语句执行异常")
+        transaction.savepoint_commit(sid)
+        context = {
+            'a': 'get预收冲应冲作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def post(self, request):
+        req_data = json.loads(request.body.decode())
+        # print(req_data)
+        # # 获取参数
+        RP_NO = req_data.get("RP_NO")  # 付款单号         字符类型
+        IRP_NO = req_data.get("IRP_NO")  # 预付款单号         字符类型
+        RP_DD = req_data.get("RP_DD")  # 付款日期         字符类型
+        CUS_NO = req_data.get("CUS_NO")  # 付款客户         字符类型
+        USR = req_data.get("USR")  # 制单人         字符类型
+        list = req_data.get("list")  # 付款单号         字符类型
+        # {
+        #     "RP_NO": "RTFS9B01003",
+        #     "IRP_NO": "RTFS9B01002",
+        #     "RP_DD": "2019-11-01",
+        #     "CUS_NO": "AB0001",
+        #     "USR": "A10000",
+        #     "list": [
+        #         {"DH": "LZS9A310002",
+        #          "ATM": 400
+        #          },
+        #         {"DH": "LZS9B01001",
+        #          "ATM": 600
+        #          }
+        #     ]
+        # }
+        # 判断是否输入收款单号
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入收款单号')
+        # 判断是否输入预收款单号
+        if IRP_NO is None:
+            return http.HttpResponseForbidden('请输入预收款单号')
+        # 判断单号的合法性
+        if RP_NO[:4] != 'RTFC' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('收款单号输入不合法,单号必须是RTYC开头且长度必须是11位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO, 'RP_ID', '1')
+        if row_ZL_NO > 0:
+            return http.HttpResponseForbidden('收款单号已存在')
+        # 判断预收款单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', IRP_NO, 'RP_ID', '1')
+        if row_ZL_NO <= 0:
+            return http.HttpResponseForbidden('预冲款单号不存在')
+        # 获取总金额
+        sum_ATM = 0  # 冲款金额
+        yf_sum = 0  # 获取单据应付款总金额
+
+        for i in list:
+
+            # 判断立账单号是否合法
+            if i["DH"][:3] != 'LZS' or len(i["DH"]) != 10:
+                return http.HttpResponseForbidden('开票单号输入不合法,单号必须是LZS开头且长度必须是10位')
+            # 判断金额输入是否正确
+            if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(i["ATM"])) is None:
+                return http.HttpResponseForbidden('金额输入不正确')
+            sum_ATM = round(sum_ATM + float(i["ATM"]), 4)
+                # 判断开票单号是否存在
+            row_MF_LZ = examine_ood('MF_LZ', 'LZ_NO', i["DH"], 'LZ_ID', 'LZ')
+            if row_MF_LZ <= 0:
+                return http.HttpResponseForbidden('开票单号不存在')
+            with connection.cursor() as cursor:
+                # 获取单据应付款总金额
+                yf_sum =round(yf_sum + cursor.execute("""SELECT AMTN FROM MF_ARP WHERE BIL_NO=%s""", [i["DH"]]).fetchall()[0][0], 4)
+        if sum_ATM>yf_sum:
+            return http.HttpResponseForbidden('冲款金额大于应付金额')
+        with connection.cursor() as cursor:
+            sid = transaction.savepoint()  # 开启事物
+            try:
+                # 插入回冲预收款扣款表
+                # cursor.execute("SELECT COUNT(*) FROM CUST WHERE CUS_NO=%s", [CUS_NO])
+                cursor.execute("""INSERT INTO TF_MON1(RP_ID,RP_NO,ITM,IRP_NO,RP_ID1,IRPITM,IRPITM2,AMTN_CLS)VALUES
+                                (1,%s,1,%s,1,1,0,%s)""", [RP_NO, IRP_NO, sum_ATM])
+                # 插入付款单表头
+                cursor.execute("""INSERT INTO TF_MON(IRP_ID,RP_NO,ITM,RP_ID,CLS_ID,RP_DD,CUS_NO,INCLUDESON,AMTN_CLS,AMTN_IRP,EXC_RTO,DEP,USR,CHK_MAN,CLS_DATE,SYS_DATE,IEA_ID,IOR_ID,SK_TYPE)VALUES
+                ('F',%s,1,1,'F',%s,%s,'F',%s,%s,1,'0000',%s,%s,%s,%s,'F','F',1)""",[RP_NO, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CUS_NO, sum_ATM, sum_ATM, USR, USR,
+                datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),datetime.datetime.strptime(RP_DD, '%Y-%m-%d')])
+                # 插入付款单表身,先遍历出每一项的单号和金额,然后在插入
+                itm = 0  # 定义项次
+                for i in list:
+                    itm += 1
+                    # print(i["DH"], i["ATM"])  # 得到单号和金额
+                    # print(itm)
+                    cursor.execute("""INSERT INTO TC_MON(RP_ID,RP_NO,ITM,ITM2,ARP_NO,AMTN_CLS,ARP_OPN_ID,RP_DD,CUS_NO,PRE_ITM)values
+                    (1,%s,1,%s,%s,%s,2,%s,%s,%s)""", [RP_NO, itm, 'AR' + i["DH"][2::], i["ATM"],datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), CUS_NO,itm])
+                    # 更新立账金额 回写立账单的数据
+                    cursor.execute(
+                        """UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)+%s,AMT=ISNULL(AMTN,0)-ISNULL(AMTN_RCV,0)-%s WHERE BIL_NO=%s""",
+                        [i["ATM"], i["ATM"], i["DH"]])
+                    # 如果单据已经冲完,结案掉立账单,还有进货的立账结案标识
+                    row_AMT = cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ),BIL_NO FROM MF_ARP WHERE BIL_NO=%s",
+                                             [i["DH"]]).fetchall()[0][0]
+                    if row_AMT <= 0:
+                        cursor.execute("""UPDATE MF_ARP SET CLOSE_ID='T' WHERE BIL_NO=%s""", [i["DH"]])
+                        cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='T',CLSLZ='T' WHERE PS_NO=%s AND PS_ID='SA'""",
+                        ['SA' + i["DH"][2::]])
+                # 插入预付款已冲金额表  ------
+                cursor.execute(
+                    """INSERT INTO MF_MON(RP_NO,RP_DD,RP_ID,DEP,AMTN,AMTN_ARP,AMTN_REST,FJ_NUM)VALUES(%s,%s,1,'0000',0,%s,%s,0)""",
+                    [RP_NO, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), yf_sum, sum_ATM])
+                # 更新预付款单已付金额
+                cursor.execute(
+                    """UPDATE TF_MON SET AMTN_CLS=ISNULL(AMTN_CLS,0)+%s WHERE RP_NO=%s AND RP_ID='1'""",
+                    [sum_ATM, IRP_NO])
+                # 获取预付款单的预付金额和已冲金额,进行对比,如果两个值相同,那么就结案掉预付款单
+                row_AMTN_MF_MON = cursor.execute(
+                """SELECT ISNULL(AMTN_BC,0) AS AMTN_BC, ISNULL(AMTN_CLS,0) AS AMTN_CLS FROM TF_MON  WHERE RP_NO=%s AND RP_ID='1'""",[IRP_NO]).fetchall()
+                if float(row_AMTN_MF_MON[0][0]) == float(row_AMTN_MF_MON[0][1]):
+                    cursor.execute("""UPDATE TF_MON SET CLS_ID='T' WHERE IRP_NO=%s AND RP_ID='1'""", [IRP_NO])
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("预收款冲应收单新增sql语句执行异常")
+            transaction.savepoint_commit(sid)
+        context = {
+            'a': 'post预收冲应冲作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def put(self, request):
+        req_data = json.loads(request.body.decode())
+        # # 获取参数
+        RP_NO = req_data.get("RP_NO")  # 付款单号         字符类型
+        IRP_NO = req_data.get("IRP_NO")  # 预付款单号         字符类型
+        RP_DD = req_data.get("RP_DD")  # 付款日期         字符类型
+        list = req_data.get("list")  # 付款单号         字符类型
+        UP_DD = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 修改时间
+        # {
+        #     "RP_NO": "RTFC9B01003",
+        #     "IRP_NO": "RTFS9B01002",
+        #     "RP_DD": "2019-11-01",
+        #     "list": [
+        #         {"DH": "LZS9B01002",
+        #          "ATM": "200"
+        #          },
+        #         {"DH": "LZS9B01001",
+        #          "ATM": 200
+        #          }
+        #     ]
+        # }
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入收款单号')
+        # 判断是否输入预收款单号
+        if IRP_NO is None:
+            return http.HttpResponseForbidden('请输入预收款单号')
+        # 判断单号的合法性
+        if RP_NO[:4] != 'RTFC' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('收款单号输入不合法,单号必须是RTYC开头且长度必须是11位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(RP_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO, 'RP_ID', '1')
+        if row_ZL_NO <= 0:
+            return http.HttpResponseForbidden('付款单不存在')
+        # 判断预收款单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', IRP_NO, 'RP_ID', '1')
+        if row_ZL_NO <= 0:
+            return http.HttpResponseForbidden('预冲款单号不存在')
+        # 获取总金额
+        sum_ATM = 0  # 冲款金额
+        yf_sum = 0  # 获取单据应付款总金额
+        for i in list:
+            # 判断立账单号是否合法
+            if i["DH"][:3] != 'LZS' or len(i["DH"]) != 10:
+                return http.HttpResponseForbidden('开票单号输入不合法,单号必须是LZS开头且长度必须是10位')
+            # 判断金额输入是否正确
+            if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(i["ATM"])) is None:
+                return http.HttpResponseForbidden('金额输入不正确')
+            sum_ATM = round(sum_ATM + float(i["ATM"]), 4)
+            # 判断开票单号是否存在
+            row_MF_LZ = examine_ood('MF_LZ', 'LZ_NO', i["DH"], 'LZ_ID', 'LZ')
+            if row_MF_LZ <= 0:
+                return http.HttpResponseForbidden('开票单号不存在')
+            with connection.cursor() as cursor:
+                # 获取单据应付款总金额
+                yf_sum = round(
+                    yf_sum + cursor.execute("""SELECT AMTN FROM MF_ARP WHERE BIL_NO=%s""", [i["DH"]]).fetchall()[0][0],
+                    4)
+        if sum_ATM > yf_sum:
+            return http.HttpResponseForbidden('冲款金额大于应收金额')
+        with connection.cursor() as cursor:
+            sid = transaction.savepoint()  # 开启事物
+            try:
+                # 修改回冲预付款扣款表
+                cursor.execute("""UPDATE  TF_MON1 SET AMTN_CLS=%s WHERE RP_NO=%s AND RP_ID='1'""", [sum_ATM, RP_NO])
+                # 修改付款单表头
+                cursor.execute(
+                    """UPDATE TF_MON SET RP_DD=%s,AMTN_CLS=%s,AMTN_IRP=%s,MODIFY_DD=%s,MODIFY_MAN=USR WHERE RP_NO=%s AND RP_ID='1'""",
+                    [datetime.datetime.strptime(RP_DD, '%Y-%m-%d'), sum_ATM, sum_ATM, UP_DD, RP_NO])
+                itm = 0  # 定义项次
+                YD_ATY = 0  # 原来单总金额
+                for i in list:
+                    itm += 1
+                    print(i["DH"], i["ATM"])  # 得到单号和金额
+                    QTY_TC_MON = cursor.execute("""SELECT ISNULL(AMTN_CLS,0) FROM TC_MON WHERE ARP_NO=%s""",
+                                                ['AR' + i["DH"][2::]]).fetchall()[0][0]
+                    YD_ATY = round((YD_ATY + QTY_TC_MON), 4)
+                    print(i["ATM"])
+                    cursor.execute("""UPDATE TC_MON SET AMTN_CLS=%s WHERE ARP_NO=%s AND RP_ID='1'""",
+                                   [i["ATM"], 'AR' + i["DH"][2::]])
+                    # 更新立账金额
+                    # 回写立账单的数据
+                    # 获取原单已冲金额未冲金额
+                    # AMTN_RCV 已经冲金额   AMT未冲金额========================================================================================
+                    ATM_MF_ARP = cursor.execute("""SELECT ISNULL(AMTN_RCV,0),ISNULL(AMT,0) FROM MF_ARP  WHERE BIL_NO=%s""",[i["DH"]]).fetchall()
+                    AMTN_RCV = ATM_MF_ARP[0][0]  # 原单已经冲金额
+                    AMT = ATM_MF_ARP[0][1]  # 原单未冲金额
+                    cursor.execute(
+                        """UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)+%s-%s,AMT=ISNULL(AMTN,0)-ISNULL(AMTN_RCV,0)-%s-%s WHERE BIL_NO=%s""",
+                        [i["ATM"], AMTN_RCV, i["ATM"], AMT, i["DH"]])
+                    # 如果单据已经冲完,结案掉立账单,还有进货的立账结案标识
+                    row_AMT = cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ),BIL_NO FROM MF_ARP WHERE BIL_NO=%s",[i["DH"]]).fetchall()[0][0]
+                    if row_AMT <= 0:
+                        cursor.execute("""UPDATE MF_ARP SET CLOSE_ID='F' WHERE BIL_NO=%s""", [i["DH"]])
+                        cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='F',CLSLZ='F' WHERE PS_NO=%s AND PS_ID='SA'""",['SA' + i["DH"][2::]])
+                # 更新预付款已冲金额表
+                cursor.execute("""UPDATE MF_MON SET AMTN_REST=%s WHERE RP_NO=%s AND RP_ID='1'""", [sum_ATM, RP_NO])
+                # 更新预付款单已付金额
+                cursor.execute(
+                    """UPDATE TF_MON SET AMTN_CLS=ISNULL(AMTN_CLS,0)+%s-%s WHERE RP_NO=%s AND RP_ID='1'""",[sum_ATM, YD_ATY, IRP_NO])
+                # 获取预付款单的预付金额和已冲金额,进行对比,如果两个值相同,那么就结案掉预付款单
+                row_AMTN_MF_MON = cursor.execute(
+                    """SELECT ISNULL(AMTN_BC,0) AS AMTN_BC, ISNULL(AMTN_CLS,0) AS AMTN_CLS FROM TF_MON  WHERE RP_NO=%s AND RP_ID='1'""",[IRP_NO]).fetchall()
+
+                if float(row_AMTN_MF_MON[0][0]) == float(row_AMTN_MF_MON[0][1]):
+                    cursor.execute("""UPDATE TF_MON SET CLS_ID='F' WHERE IRP_NO=%s AND RP_ID='1'""", [IRP_NO])
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("预收款冲应收单修改sql语句执行异常")
+            transaction.savepoint_commit(sid)
+
+        context = {
+            'a': 'put预收冲应冲作业'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def delete(self, request):
+        req_data = json.loads(request.body.decode())
+        # # 获取参数
+        RP_NO = req_data.get("RP_NO")  # 付款单号         字符类型
+        # {
+        #     "RP_NO": "RTFS9B01002"
+        # }
+        # 判断是否输入单号
+        if RP_NO is None:
+            return http.HttpResponseForbidden('请输入收款单号')
+        # 判断单号的合法性
+        if RP_NO[:4] != 'RTFC' or len(RP_NO) != 11:
+            return http.HttpResponseForbidden('收款单号输入不合法,单号必须是RTYC开头且长度必须是11位')
+        # 判断单号是否存在
+        row_ZL_NO = examine_ood('TF_MON', 'RP_NO', RP_NO, 'RP_ID', '1')
+        if row_ZL_NO <= 0:
+            return http.HttpResponseForbidden('收款单号不存在')
+        with connection.cursor() as cursor:
+            sid = transaction.savepoint()  # 开启事物
+            try:
+                # 获取原单付款单总金额用于扣减预付款单总金额
+                sum_TF_MON = cursor.execute("""SELECT ISNULL(AMTN_CLS,0) FROM TF_MON WHERE RP_NO=%s AND RP_ID='1'""",[RP_NO]).fetchall()[0][0]
+                # 获取预付款单单号
+                TF_MON_NO = cursor.execute("""SELECT IRP_NO FROM TF_MON1 WHERE RP_NO=%s AND RP_ID='1'""", [RP_NO]).fetchall()[0][0]
+                # 修改预付款扣款金额
+                cursor.execute("""UPDATE TF_MON SET AMTN_CLS=ISNULL(AMTN_CLS,0)-%s WHERE RP_NO=%s AND RP_ID='1'""",[sum_TF_MON, TF_MON_NO])
+                # 以列表的形式获取付款单的立账单号
+                TC_MON_RP_NO = cursor.execute("""SELECT ARP_NO FROM TC_MON WHERE RP_NO=%s AND RP_ID='1'""",[RP_NO]).fetchall()
+                # 遍历列表得到每一张立账单号
+                for i in TC_MON_RP_NO:
+                    print(i[0])  # 立账单号
+                    # 更新立账金额
+                    # 回写立账单的数据
+                    # 获取原单已冲金额未冲金额
+                    # AMTN_RCV 已经冲金额   AMT未冲金额===========================================================
+                    ATM_MF_ARP = cursor.execute("""SELECT ISNULL(AMTN_RCV,0),ISNULL(AMT,0) FROM MF_ARP  WHERE ARP_NO=%s""",[i[0]]).fetchall()
+                    AMTN_RCV = ATM_MF_ARP[0][0]  # 原单已经冲金额
+                    AMT = ATM_MF_ARP[0][1]  # 原单未冲金额
+                    cursor.execute(
+                        """UPDATE MF_ARP SET AMTN_RCV=ISNULL(AMTN_RCV,0)-%s,AMT=ISNULL(AMTN,0)-ISNULL(AMTN_RCV,0)-%s WHERE ARP_NO=%s""",[AMTN_RCV, AMT, i[0]])
+                    # 如果单据已经冲完,结案掉立账单,还有进货的立账结案标识
+                    row_AMT = cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ),BIL_NO FROM MF_ARP WHERE ARP_NO=%s",[i[0]]).fetchall()[0][0]
+                    if row_AMT <= 0:
+                        cursor.execute("""UPDATE MF_ARP SET CLOSE_ID='F' WHERE ARP_NO=%s""", [i[0]])
+                        cursor.execute("""UPDATE MF_PSS SET LZ_CLS_ID='F',CLSLZ='F' WHERE PS_NO=%s""", ['SA' + i[0][2::]])
+                # 删除扣款单
+                cursor.execute("""DELETE FROM TF_MON1 WHERE RP_NO=%s AND RP_ID='1'""", [RP_NO])
+                # 删除付款单表头
+                cursor.execute("""DELETE FROM TF_MON WHERE RP_NO=%s AND RP_ID='1'""", [RP_NO])
+                # 删除付款单表身
+                cursor.execute("""DELETE FROM TC_MON WHERE RP_NO=%s  AND RP_ID='1'""", [RP_NO])
+                # 删除付款记录
+                cursor.execute("""DELETE FROM MF_MON WHERE RP_NO=%s AND RP_ID='1'""", [RP_NO])
+            except Exception:
+                transaction.savepoint_rollback(sid)
+                return http.HttpResponseForbidden("预收款冲应收单删除sql语句执行异常")
+            transaction.savepoint_commit(sid)
+        context = {
+            'a': 'delete预收冲应冲作业'
+        }
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab
         return http.JsonResponse(context)

+ 447 - 0
awj/awj/apps/stockinvoice/views.py

@@ -1,3 +1,4 @@
+<<<<<<< HEAD
 import json
 
 import re
@@ -443,3 +444,449 @@ class InvoiceView(View):
         return http.JsonResponse(context)
 
 
+=======
+import datetime
+import json
+import re
+
+from django import http
+from django.db import connection, transaction
+# Create your views here.
+from django.views import View
+
+from utils.cust_data import customer_data
+from utils.examine_ood import examine_ood
+from utils.usr_data import usr_data
+
+
+class InvoiceView(View):
+    def get(self,request):
+        CUS_NO='AB0001'
+        CUS_NO_NAME='天心客户'
+        LZ_DD='2019-10-20'
+        print(111111)
+        with connection.cursor() as cursor:
+            # 判断客户资料是否存在,不存在则创建
+            row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '1', datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'))
+        context={
+            'a':123
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def post(self,request):
+        #1,获取参数
+        ZL_NO = request.POST.get("ZL_NO")   #单据号码    1         字符型
+        LZ_DD = request.POST.get("LZ_DD")   #单据日期    1         字符型
+        INV_NO = request.POST.get("INV_NO")   #发票号码    1       字符型
+        # INV_DD = request.POST.get("INV_DD")   #发票日期     1      字符型               不需要
+        ZHANG_ID = request.POST.get("ZHANG_ID")   #立账方式   1    字符型  2开票 1直接立账
+        # TAX_ID = request.POST.get("TAX_ID")   #扣税类别   1         字符型                    不需要
+        AMT = request.POST.get("AMT")   #开票金额        1          数字型
+        CUS_NO = request.POST.get("CUS_NO")   #开票客户编码    1    字符型
+        CUS_NO_NAME = request.POST.get("CUS_NO_NAME")   #开票客户名称     1       字符型
+        UNI_NO_PAY = request.POST.get("UNI_NO_PAY")   #纳税人识别码   1           字符型
+        SAL_ADR = request.POST.get("SAL_ADR")   #开票客户地址   1                 字符型
+        SAL_TEL = request.POST.get("SAL_TEL")   #开票客户电话   1                 字符型
+        SAL_KH_BANK = request.POST.get("SAL_KH_BANK")  # 开户账号   1            字符型
+        USR = request.POST.get("USR")   #制单人编码   1                           字符型
+        USR_NAME = request.POST.get("USR_NAME")   #制单人姓名   1                字符型
+        SAL_ID_CODE = request.POST.get("SAL_ID_CODE")   #开户银行账号   1       字符型
+        REM = request.POST.get("REM")   #发票备注   1                            字符型
+        # print(SAL_KH_BANK)
+        # print(SAL_ID_CODE)
+        # print(REM)
+        # print(ZL_NO)   #单据号码    1
+        # print(LZ_DD)   #单据日期    1
+        # print(INV_NO)   #发票号码    1
+        # print(INV_DD)    #发票日期     1
+        # print(ZHANG_ID)    #立账方式   1
+        # # print(TAX_ID)     #扣税类别   1
+        # print(AMT)       #开票金额        1
+        # print(CUS_NO)   #开票客户编码    1
+        # print(CUS_NO_NAME)      #开票客户名称     1
+        # print(UNI_NO_PAY)      #纳税人识别码   1
+        # print(SAL_ADR)     #开票客户地址   1
+        # print(SAL_TEL)       #开票客户电话   1
+        # print(USR)      #制单人编码   1
+        # print(USR_NAME)     #制单人姓名   1
+        # 判断单号的合法性
+        print(ZL_NO[:3])
+        print(len(ZL_NO))
+        if ZL_NO[:3] != 'LPF' or len(ZL_NO) != 10:
+            return http.HttpResponseForbidden('开票单号输入不合法,单号必须是LPF开头且长度必须是10位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(LZ_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if ZL_NO is None:
+            return http.HttpResponseForbidden('请输入开票单号')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMT)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
+        if ZHANG_ID is None:
+            return http.HttpResponseForbidden('请输入开票方式')
+        # 判断立账方式是否有效
+        if int(ZHANG_ID) != 1 and int(ZHANG_ID) != 2:
+            return http.HttpResponseForbidden('立账方式只能是1(开票),2(不开票)')
+
+        # 判断进货单号是存在
+        PS_NO='PC' + ZL_NO[2::]
+        if int(ZHANG_ID) == 1:
+            row_ZL_NO = examine_ood('MF_PSS', 'PS_NO', PS_NO,'PS_ID','PC')
+            if row_ZL_NO > 0:
+                return http.HttpResponseForbidden('进货单号已存在')
+
+        # 判断开票单号是否存在
+        if int(ZHANG_ID) == 2:
+            row_ZL_NO = examine_ood('MF_LZ1', 'LZ_NO', ZL_NO,'LZ_ID','LP')
+            print(row_ZL_NO)
+            if row_ZL_NO > 0:
+                return http.HttpResponseForbidden('开票单号已存在')
+
+        #判断客户资料是否存在,不存在则创建
+        row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '2',datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'))
+
+        # 判断用户是否存在,不存在则创建
+        row_usr = usr_data(USR,USR_NAME,datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'))
+
+        with connection.cursor() as cursor:
+            #直接开发票
+            if int(ZHANG_ID) == 2:
+                sid = transaction.savepoint()  #开启事物
+            # 插入进货单表头-----------------------改CUR_ID  RMB
+                try:
+                    cursor.execute("""INSERT INTO MF_PSS(PS_ID,PS_NO,PS_DD,CUS_NO,ZHANG_ID,USR,CHK_MAN,CLS_DATE,SYS_DATE,AMT,EXC_RTO,LZ_CLS_ID,CLSLZ,TAX_ID)
+                    VALUES('PC',%s,%s,%s,3,%s,%s,%s,%s,%s,
+                    1,'F','F',1)""", ['PC'+ZL_NO[2::], datetime.datetime.strptime(LZ_DD,'%Y-%m-%d'),CUS_NO,USR,USR,datetime.datetime.strptime(LZ_DD,'%Y-%m-%d'),
+                    datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),AMT])
+                #插入进货单表身
+                    cursor.execute("""INSERT INTO TF_PSS(PS_ID,PS_NO,PS_DD,WH,PRD_NO,QTY,UP,AMT,AMTN_NET,TAX_RTO,ITM,UNIT,CSTN_SAL,PRE_ITM)
+                VALUES('PC',%s,%s,'0000','AQ001',1,%s,%s,%s,5,1,1,%s,1)""", ['PC'+ZL_NO[2::], datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),AMT,AMT,AMT,AMT])
+
+                #增加发票记录
+                    cursor.execute("""INSERT INTO INV_NO (BIL_NO,INV_NO,BIL_ID,INV_ID,CUS_NO,TITLE_BUY,TITLE_PAY,AMT,TAX_ID1,TAX_ID2,INV_TT,INV_DD,UNI_NO_PAY,SAL_ADR,SAL_TEL,SAL_KH_BANK,SAL_ID_CODE,REM)
+                    VALUES(%s,%s,'LP',21,%s,%s,%s,%s,1,1,1,%s,%s,%s,%s,%s,%s,%s)""",[ZL_NO, INV_NO, CUS_NO, CUS_NO_NAME, CUS_NO_NAME, AMT,datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),
+                     UNI_NO_PAY,SAL_ADR,SAL_TEL,SAL_KH_BANK,SAL_ID_CODE,REM])
+
+                #插入立账单MF_MRP------------------改CUR_ID   RMB
+                    cursor.execute("""INSERT INTO MF_ARP(ARP_ID,OPN_ID,ARP_NO,BIL_NO,CUS_NO,PAY_DD,INV_NO,AMT,AMTN,AMTN_NET,EXC_RTO,CLOSE_ID,BIL_ID,SYS_DATE,BIL_DD)VALUES
+                    (2,2,%s,%s,%s,%s,%s,%s,%s,%s,1,'F','LP',%s,%s)""", [ 'AP'+ZL_NO[2::],ZL_NO,CUS_NO,datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),INV_NO
+                    ,AMT,AMT,AMT,datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),datetime.datetime.strptime(LZ_DD, '%Y-%m-%d')])
+
+                #插入进货开票表头--------------改CUR_ID    RMB
+                    cursor.execute("""INSERT INTO MF_LZ1(LZ_ID,LZ_NO,PAY_DD,LZ_DD,CUS_NO,INV_NO,EXC_RTO,USR,CHK_MAN,AMT,AMTN_NET,ARP_NO,CLS_DATE,TAX_ID,ZHANG_ID,
+                SYS_DATE,VOH_CHK,TURN_ID,INV_BIL_ID,INV_BIL_NO,FLG_VOH)VALUES
+                ('LP',%s,%s,%s,%s,%s,1,%s,%s,
+                %s,%s,%s,%s,'1',3,%s,1,1,'LP',%s,'F')""", [ZL_NO, datetime.datetime.strptime(LZ_DD, '%Y-%m-%d')
+                ,datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),CUS_NO,INV_NO,USR,USR,AMT,AMT,'AP'+ZL_NO[2::],datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),datetime.datetime.strptime(LZ_DD, '%Y-%m-%d')
+                ,ZL_NO])
+
+                #插入进货开票表身
+                    cursor.execute("""INSERT INTO TF_LZ1(LZ_ID,LZ_NO,ITM,PS_NO,AMT,AMTN_NET,PRD_NO,EST_ITM,PAY_DD,TAX_RTO,QTY,UP,BIL_ID,UNIT,PRD_NAME,CUS_NO,UP_ZG,PRE_ITM)VALUES
+                ('LP',%s,1,%s,%s,%s,'AQ001',1,%s,5,1,1,'PC',1,'服務費用',%s,1,1)""", [ZL_NO,'PC'+ZL_NO[2::],AMT,AMT,datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),CUS_NO])
+
+                #开完发票回写进货单表身已开金额
+                    cursor.execute("""UPDATE TF_PSS SET AMT_FP=%s,AMTN_NET_FP=%s WHERE PS_NO=%s""", [AMT,AMT,'PC'+ZL_NO[2::]])
+                except Exception:
+                    transaction.savepoint_rollback(sid)   #语句执行错误,进行语句回滚
+                    return http.HttpResponseForbidden("增加开票作业sql语句执行错误")
+                transaction.savepoint_commit(sid)   #提交事物
+            # 不开发票直接产生进货单,并且立账
+            if int(ZHANG_ID) == 1:
+                sid = transaction.savepoint()  #开启事物
+                try:
+                    # 插入进货单表头-----------------------改CUR_ID  RMB
+                    cursor.execute("""INSERT INTO MF_PSS(PS_ID,PS_NO,PS_DD,CUS_NO,ZHANG_ID,USR,CHK_MAN,CLS_DATE,SYS_DATE,AMT,EXC_RTO,LZ_CLS_ID,CLSLZ,TAX_ID,ARP_NO)
+                        VALUES('PC',%s,%s,%s,1,%s,%s,%s,%s,%s,
+                        1,'F','F',1,%s)""",
+                                   ['PC' + ZL_NO[2::], datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), CUS_NO, USR, USR,
+                                    datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),
+                                    datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), AMT,'AP' + ZL_NO[2::]])
+                    # 插入进货单表身
+                    cursor.execute("""INSERT INTO TF_PSS(PS_ID,PS_NO,PS_DD,WH,PRD_NO,QTY,UP,AMT,AMTN_NET,TAX_RTO,ITM,UNIT,CSTN_SAL,PRE_ITM)
+                    VALUES('PC',%s,%s,'0000','AQ001',1,%s,%s,%s,5,1,1,%s,1)""",
+                                   ['PC' + ZL_NO[2::], datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), AMT, AMT, AMT, AMT])
+                    # 插入立账单MF_MRP------------------改CUR_ID   RMB
+                    cursor.execute("""INSERT INTO MF_ARP(ARP_ID,OPN_ID,ARP_NO,BIL_NO,CUS_NO,PAY_DD,INV_NO,AMT,AMTN,AMTN_NET,EXC_RTO,CLOSE_ID,BIL_ID,SYS_DATE,BIL_DD)VALUES
+                                    (2,2,%s,%s,%s,%s,%s,%s,%s,%s,1,'F','PC',%s,%s)""",
+                                   ['AP' + ZL_NO[2::], 'PC' + ZL_NO[2::], CUS_NO, datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), INV_NO
+                                       , AMT, AMT, AMT, datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),
+                                    datetime.datetime.strptime(LZ_DD, '%Y-%m-%d')])
+                except Exception:
+                    transaction.savepoint_rollback(sid)   #语句执行错误,进行语句回滚
+                    return http.HttpResponseForbidden("新增进货单sql语句执行错误")
+                transaction.savepoint_commit(sid)   #提交事物
+        context = {
+            'a': 'POST提交'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def put(self, request):
+
+        # 获取传过来的参数
+        req_data = json.loads(request.body.decode())
+
+        ZL_NO = req_data.get("ZL_NO")  # 单据号码    1
+        LZ_DD = req_data.get("LZ_DD")  # 单据日期    1
+        INV_NO = req_data.get("INV_NO")  # 发票号码    1
+        INV_DD = req_data.get("INV_DD")  # 发票日期     1
+        ZHANG_ID = req_data.get("ZHANG_ID")  # 立账方式   1
+        # TAX_ID = req_data.get("TAX_ID")  # 扣税类别   1
+        AMT = req_data.get("AMT")  # 开票金额        1                  不需要
+        CUS_NO = req_data.get("CUS_NO")  # 开票客户编码    1
+        CUS_NO_NAME = req_data.get("CUS_NO_NAME")  # 开票客户名称     1
+        UNI_NO_PAY = req_data.get("UNI_NO_PAY")  # 纳税人识别码   1
+        SAL_ADR = req_data.get("SAL_ADR")  # 开票客户地址   1
+        SAL_TEL = req_data.get("SAL_TEL")  # 开票客户电话   1
+        SAL_KH_BANK = req_data.get("SAL_KH_BANK")  # 开户账号   1
+        USR = req_data.get("USR")  # 制单人编码   1
+        USR_NAME = req_data.get("USR_NAME")  # 制单人姓名   1
+        SAL_ID_CODE = req_data.get("SAL_ID_CODE")  # 开户银行账号   1
+        REM = req_data.get("REM")  # 发票备注   1
+        UP_DD = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 修改时间
+
+        # {
+        #     "ZL_NO": "LP9A170002",
+        #     "LZ_DD": "2019-10-17",
+        #     "INV_NO": "000001111122222",
+        #     "INV_DD": "2019-10-17",
+        #     "ZHANG_ID": "3",
+        #     "TAX_ID": "1",
+        #     "AMT": 100,
+        #     "CUS_NO": "AQ123456",
+        #     "CUS_NO_NAME": "天心软件",
+        #     "UNI_NO_PAY": "443222222222222222",
+        #     "SAL_ADR": "广州天河华港上午大厦",
+        #     "SAL_TEL": "13444567876",
+        #     "SAL_KH_BANK": "01",
+        #     "USR": "A10000",
+        #     "USR_NAME": "楠楠",
+        #     "SAL_ID_CODE": "43112919941002",
+        #     "REM": "我的备注",
+        # }
+        # 判断单号的合法性
+        if ZL_NO[:3] != 'LPF' or len(ZL_NO) != 10:
+            return http.HttpResponseForbidden('开票单号输入不合法,单号必须是LPF开头且长度必须是10位')
+        # 校验日期格式
+        try:
+            datetime.datetime.strptime(LZ_DD, '%Y-%m-%d')
+        except Exception:
+            return http.HttpResponseForbidden('日期格式输入不正确')
+        if ZL_NO is None:
+            return http.HttpResponseForbidden('请输入开票单号')
+            # 判断金额输入是否正确
+        if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(str(AMT)) is None:
+            return http.HttpResponseForbidden('金额输入不正确')
+        if ZHANG_ID is None:
+            return http.HttpResponseForbidden('请输入开票方式')
+        # 判断立账方式是否有效
+        if int(ZHANG_ID) != 1 and int(ZHANG_ID) != 2:
+            return http.HttpResponseForbidden('立账方式只能是1(开票),2(不开票)')
+        # 判断进货单号是存在
+        if int(ZHANG_ID) == 1:
+            row_ZL_NO = examine_ood('MF_PSS', 'PS_NO', 'PC' + ZL_NO[2::],'PS_ID','PC')
+            if row_ZL_NO <= 0:
+                return http.HttpResponseForbidden('进货单号不存在')
+        # 判断开票单号是否存在
+        if int(ZHANG_ID) > 2:
+            row_ZL_NO = examine_ood('MF_LZ1', 'LZ_NO', ZL_NO,'LZ_ID','LP')
+            if row_ZL_NO <= 0:
+                return http.HttpResponseForbidden('开票单号不存在')
+        #判断厂商是否存在,不存在则自动创建
+        row_cus_no = customer_data(CUS_NO, CUS_NO_NAME, '2',datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'))
+
+        # 判断用户是否存在,不存在则创建
+        row_usr = usr_data(USR, USR_NAME,datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'))
+
+        with connection.cursor() as cursor:
+            #进货开票
+            if int(ZHANG_ID)==2:
+                sid = transaction.savepoint()  # 开启事物
+                try:
+                    # 修改进货单表头
+                    # PS_NO  单号  单号不能改用作条件
+                    # PS_DD  日期
+                    # CUS_NO 客户编码
+                    # ZHANG_ID  立账方式
+                    # USR  用户
+                    # CHK_MAN   审核人
+                    # AMT  金额
+                    cursor.execute("""UPDATE MF_PSS SET PS_DD=%s,CUS_NO=%s,ZHANG_ID=%s,AMT=%s,MODIFY_DD=%s,MODIFY_MAN=USR WHERE PS_NO=%s AND PS_ID='PC'""", [datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), CUS_NO,ZHANG_ID,AMT,UP_DD,'PC'+ZL_NO[2::]])
+
+                    # 修改进货单表身
+                    # PS_DD日期
+                    #UP  单价
+                    #AMT 金额
+                    # AMTN_NET  金额
+                    # CSTN_SAL  立账金额
+                    cursor.execute("""UPDATE TF_PSS SET PS_DD=%s,UP=%s,AMTN_NET=%s,CSTN_SAL=%s,AMT=%s,AMT_FP=%s,AMTN_NET_FP=%s WHERE PS_NO=%s AND PS_ID='PC'""", [datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), AMT,AMT,AMT,AMT,AMT, AMT,'PC'+ZL_NO[2::]])
+
+                    # 修改发票记录
+                    cursor.execute("""UPDATE INV_NO SET INV_NO=%s,CUS_NO=%s,TITLE_BUY=%s,TITLE_PAY=%s,AMT=%s,INV_DD=%s,UNI_NO_PAY=%s,SAL_ADR=%s,SAL_TEL=%s,SAL_KH_BANK=%s,SAL_ID_CODE=%s,REM=%s WHERE BIL_NO=%s AND BIL_ID='LP'""",
+                                   [INV_NO, CUS_NO,CUS_NO_NAME,CUS_NO_NAME,AMT,INV_DD,UNI_NO_PAY,SAL_ADR,SAL_TEL,SAL_KH_BANK,SAL_ID_CODE,REM,ZL_NO])
+                    # BIL_NO   开票单号  ZL_NO
+                    # INV_NO 开票号码       INV_NO
+                    #  CUS_NO 开票客户编码   CUS_NO
+                    # TITLE_BUY  客户名   CUS_NO_NAME
+                    # TITLE_PAY  客户名   CUS_NO_NAME
+                    # AMT    金额    AMT
+                    #INV_DD  日期  INV_DD
+                    #UNI_NO_PAY       UNI_NO_PAY
+                    # SAL_ADR      SAL_ADR
+                    #SAL_TEL       SAL_TEL
+                    # SAL_KH_BANK      SAL_KH_BANK
+                    # SAL_ID_CODE       SAL_ID_CODE
+                    #REM        REM
+
+                    # 修改立账单MF_MRP
+                    cursor.execute("""UPDATE MF_ARP SET CUS_NO=%s,PAY_DD=%s,INV_NO=%s,AMT=%s,AMTN=%s,AMTN_NET=%s,SYS_DATE=%s WHERE ARP_NO=%s AND BIL_ID='LP'""", [CUS_NO, datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),
+                      INV_NO,AMT,AMT,AMT,datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),'AP' + ZL_NO[2::]])
+                    # ARP_NO  立账单号  'AP' + ZL_NO[2::]
+                    # CUS_NO   客户代号  CUS_NO
+                    # PAY_DD  立账日期   datetime.datetime.strptime(LZ_DD, '%Y-%m-%d')
+                    #INV_NO   发票号码   INV_NO
+                    # AMT  金额   AMT
+                    # AMTN        AMT
+                    # AMTN_NET    AMT
+                    # SYS_DATE   录入日期  datetime.datetime.strptime(LZ_DD, '%Y-%m-%d')
+
+                    # 插入进货开票表头
+                    cursor.execute("""UPDATE MF_LZ1 SET PAY_DD=%s,LZ_DD=%s,CUS_NO=%s,INV_NO=%s,AMT=%s,AMTN_NET=%s,MODIFY_DD=%s,MODIFY_MAN=USR WHERE LZ_NO=%s AND LZ_ID='LP'""",
+                                   [datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),CUS_NO,INV_NO,AMT,AMT,UP_DD,ZL_NO])
+                    # LZ_NO  单号  ZL_NO
+                    # PAY_DD 日期    datetime.datetime.strptime(LZ_DD, '%Y-%m-%d')
+                    # LZ_DD  日期    datetime.datetime.strptime(LZ_DD, '%Y-%m-%d')
+                    # CUS_NO  客户编码    CUS_NO
+                    # INV_NO  发票号码    INV_NO
+                    # AMT 金额  AMT
+                    # AMTN_NET    金额  AMT
+
+                    # 修改进货开票表身
+                    cursor.execute("""UPDATE TF_LZ1 SET AMT=%s,AMTN_NET=%s,CUS_NO=%s WHERE LZ_NO=%s AND LZ_ID='LP'""", [AMT, AMT,CUS_NO,ZL_NO])
+                    # LZ_NO  单号  ZL_NO
+                    # AMT    金额   AMT
+                    # AMTN_NET    金额  AMT
+                    # CUS_NO  客户  CUS_NO
+                    # 修改开完发票回写进货单表身已开金额
+                    cursor.execute("""UPDATE TF_PSS SET AMT_FP=%s,AMTN_NET_FP=%s WHERE PS_NO=%s AND PS_ID='PC'""",[AMT, AMT, 'PC' + ZL_NO[2::]])
+                except Exception:
+                    transaction.savepoint_rollback(sid)  # 语句执行错误,进行语句回滚
+                    return http.HttpResponseForbidden("修改进货开票sql语句执行错误")
+                transaction.savepoint_commit(sid)  # 提交事物
+            # 不开票
+            if int(ZHANG_ID)==1:
+                sid = transaction.savepoint()  # 开启事物
+                try:
+                    cursor.execute(
+                        """UPDATE MF_PSS SET PS_DD=%s,CUS_NO=%s,ZHANG_ID=%s,AMT=%s,MODIFY_DD=%s,MODIFY_MAN=USR WHERE PS_NO=%s AND PS_ID='PC'""",
+                        [datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), CUS_NO, ZHANG_ID, AMT, UP_DD, 'PC' + ZL_NO[2::]])
+                    # 修改进货单表身
+                    # PS_DD日期
+                    # UP  单价
+                    # AMT 金额
+                    # AMTN_NET  金额
+                    # CSTN_SAL  立账金额
+                    cursor.execute("""UPDATE TF_PSS SET PS_DD=%s,UP=%s,AMTN_NET=%s,CSTN_SAL=%s,AMT=%s WHERE PS_NO=%s AND PS_ID='PC'""",
+                                   [datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), AMT, AMT, AMT, AMT, 'PC' + ZL_NO[2::]])
+                    # 修改立账金额
+                    cursor.execute(
+                        """UPDATE MF_ARP SET CUS_NO=%s,PAY_DD=%s,AMT=%s,AMTN=%s,AMTN_NET=%s,SYS_DATE=%s WHERE ARP_NO=%s AND BIL_ID='PC'""",
+                        [CUS_NO, datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), AMT, AMT, AMT, datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), 'AP' + ZL_NO[2::]])
+                except Exception:
+                    transaction.savepoint_rollback(sid)  # 语句执行错误,进行语句回滚
+                    return http.HttpResponseForbidden("修改进货单sql语句执行错误")
+                transaction.savepoint_commit(sid)  # 提交事物
+        context = {
+            'a': 'PUT提交'
+        }
+        return http.JsonResponse(context)
+
+    @transaction.atomic
+    def delete(self, request):
+
+        # 获取传过来的参数
+        req_data = json.loads(request.body.decode())
+        ZL_NO = req_data.get("ZL_NO")  # 单据号码
+        ZHANG_ID = req_data.get("ZHANG_ID")  #立账方式
+
+        # {
+        #     "ZL_NO": "LPF9A170002",
+        #     "ZHANG_ID": "2"
+        # }
+
+        # 判断立账方式是否有效
+        if ZL_NO is None:
+            return http.HttpResponseForbidden('请传入开票单号')
+        if ZHANG_ID is None:
+            return http.HttpResponseForbidden('请传入开票类型')
+        if int(ZHANG_ID) != 1 and int(ZHANG_ID) != 2:
+            return http.HttpResponseForbidden('立账方式只能是1(开票),2(不开票)')
+        # 判断是否产生付款单
+        row_TC_MON = examine_ood('TC_MON', 'RP_NO', 'AP' + ZL_NO[2::], 'RP_ID', '2')
+        if row_TC_MON > 0:
+            return http.HttpResponseForbidden('已经产生付款单不允许修改')
+        # 判断进货单号是存在
+        if int(ZHANG_ID) == 1:
+            row_ZL_NO = examine_ood('MF_PSS', 'PS_NO', 'PC' + ZL_NO[2::],'PS_ID','PC')
+            if row_ZL_NO <= 0:
+                return http.HttpResponseForbidden('进货单号不存在')
+        # 判断开票单号是否存在
+        if int(ZHANG_ID) == 2:
+            row_ZL_NO = examine_ood('MF_LZ1', 'LZ_NO', ZL_NO,'LZ_ID','LP')
+            if row_ZL_NO <= 0:
+                return http.HttpResponseForbidden('开票单号不存在')
+
+        with connection.cursor() as cursor:
+
+            if int(ZHANG_ID)==2:
+                sid = transaction.savepoint()  # 开启事物
+                try:
+                    # 判断是否产生后续单据
+                    sql = "SELECT COUNT(*) FROM %s WHERE %s='%s'" % ('TC_MON', 'ARP_NO', 'AP' + ZL_NO[2::])
+                    row_ZL_NO = cursor.execute(sql).fetchall()[0][0]
+                    if row_ZL_NO > 0:
+                        return http.HttpResponseForbidden('开票单或进货单已产生后续收付款单')
+                    # 删除进货来票作业表头
+                    cursor.execute("""DELETE FROM TF_LZ1 WHERE  LZ_NO=%s AND LZ_ID='LP'""", [ZL_NO])
+                    # 删除进货开票作业表身
+                    cursor.execute("""DELETE FROM MF_LZ1 WHERE  LZ_NO=%s AND LZ_ID='LP'""", [ZL_NO])
+                    #删除立账金额单据
+                    cursor.execute("""DELETE FROM MF_ARP WHERE BIL_NO=%s AND BIL_ID='LP'""", [ZL_NO])
+                    #删除发票单据
+                    cursor.execute("""DELETE FROM INV_NO  WHERE BIL_NO=%s AND BIL_ID='LP'""", [ZL_NO])
+                    # 删除进货单表身单据
+                    cursor.execute("""DELETE FROM MF_PSS WHERE PS_NO=%s AND PS_ID='PC'""", ['PC' + ZL_NO[2::]])
+                    # 删除进货单表头单据
+                    cursor.execute("""DELETE FROM TF_PSS WHERE PS_NO=%s AND PS_ID='PC'""", ['PC' + ZL_NO[2::]])
+                except Exception:
+                    transaction.savepoint_rollback(sid)  # 语句执行错误,进行语句回滚
+                    return http.HttpResponseForbidden("删除开票作业sql语句执行错误")
+                transaction.savepoint_commit(sid)  # 提交事物
+            if int(ZHANG_ID)==1:
+
+                sid = transaction.savepoint()  # 开启事物
+                try:
+                    # 判断是否产生后续单据
+                    sql = "SELECT COUNT(*) FROM %s WHERE %s='%s'" % ('TC_MON', 'ARP_NO', 'AP' + ZL_NO[2::])
+                    row_ZL_NO = cursor.execute(sql).fetchall()[0][0]
+                    if row_ZL_NO > 0:
+                        return http.HttpResponseForbidden('开票单或进货单已产生后续收付款单')
+                    cursor.execute("""DELETE FROM MF_PSS WHERE PS_NO=%s AND PS_ID='PC'""", ['PC' + ZL_NO[2::]])
+                    # 删除进货单表头单据
+                    cursor.execute("""DELETE FROM TF_PSS WHERE PS_NO=%s AND PS_ID='PC'""", ['PC' + ZL_NO[2::]])
+                    # 删除进货单表身单据
+                    cursor.execute("""DELETE FROM MF_ARP WHERE BIL_NO=%s AND BIL_ID='PC'""", ['PC' + ZL_NO[2::]])
+                except Exception:
+                    transaction.savepoint_rollback(sid)  # 语句执行错误,进行语句回滚
+                    return http.HttpResponseForbidden("删除进货单sql语句执行错误")
+                transaction.savepoint_commit(sid)  # 提交事物
+        context = {
+            'a': 'DELETE提交'
+        }
+        return http.JsonResponse(context)
+
+
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab

+ 4 - 0
awj/awj/apps/stockinvoice/xixi.py

@@ -1 +1,5 @@
+<<<<<<< HEAD
 
+=======
+
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab

+ 206 - 0
awj/awj/setting/dev.py

@@ -1,3 +1,4 @@
+<<<<<<< HEAD
 """
 Django settings for awj project.
 
@@ -202,3 +203,208 @@ LOGGING = {
         },
     }
 }
+=======
+"""
+Django settings for awj project.
+
+Generated by 'django-admin startproject' using Django 1.11.11.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/1.11/topics/settings/
+
+For the full list of settings and their values, see
+https://docs.djangoproject.com/en/1.11/ref/settings/
+"""
+
+import os
+
+# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+
+
+# Quick-start development settings - unsuitable for production
+# See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/
+
+# SECURITY WARNING: keep the secret key used in production secret!
+SECRET_KEY = '=&u2a!cp6*4i=$140mw^m_+2%ko82r+o*camh&=12mg2s+m%y0'
+
+# SECURITY WARNING: don't run with debug turned on in production!
+DEBUG = True
+
+ALLOWED_HOSTS = ['*']
+
+
+# Application definition
+import sys
+#告诉系统apps作为了子应用的新的导包路径
+sys.path.insert(1,os.path.join(BASE_DIR,'apps'))
+INSTALLED_APPS = [
+    'django.contrib.admin',
+    'django.contrib.auth',
+    'django.contrib.contenttypes',
+    'django.contrib.sessions',
+    'django.contrib.messages',
+    'django.contrib.staticfiles',
+    'stockinvoice.apps.StockinvoiceConfig', #开票作业
+    'PaymentOperation.apps.PaymentoperationConfig',  #付款作业
+    'salesinvoice.apps.SalesinvoiceConfig'  #付款作业
+]
+
+MIDDLEWARE = [
+    'django.middleware.security.SecurityMiddleware',
+    'django.contrib.sessions.middleware.SessionMiddleware',
+    'django.middleware.common.CommonMiddleware',
+    # 'django.middleware.csrf.CsrfViewMiddleware',
+    'django.contrib.auth.middleware.AuthenticationMiddleware',
+    'django.contrib.messages.middleware.MessageMiddleware',
+    'django.middleware.clickjacking.XFrameOptionsMiddleware',
+    'utils.middleware.middleware',#用户验证中间件
+]
+
+ROOT_URLCONF = 'awj.urls'
+
+TEMPLATES = [
+    {
+        'BACKEND': 'django.template.backends.django.DjangoTemplates',
+        'DIRS': [],
+        'APP_DIRS': True,
+        'OPTIONS': {
+            'context_processors': [
+                'django.template.context_processors.debug',
+                'django.template.context_processors.request',
+                'django.contrib.auth.context_processors.auth',
+                'django.contrib.messages.context_processors.messages',
+            ],
+        },
+    },
+]
+
+WSGI_APPLICATION = 'awj.wsgi.application'
+
+
+# Database
+# https://docs.djangoproject.com/en/1.11/ref/settings/#databases
+
+# DATABASES = {
+#     'default': {
+#         'ENGINE': 'django.db.backends.sqlite3',
+#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
+#     }
+# }
+# 配置连接数据库
+
+# DATABASES = {
+#     # 'default': {
+#     #     'ENGINE': 'django.db.backends.sqlite3',
+#     #     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
+#     # }
+#     'default': {
+#         'NAME': 'DB_2019',
+#         'ENGINE': 'sql_server.pyodbc',
+#         'HOST': '127.0.0.1',
+#         'USER': 'sa',
+#         'PASSWORD': '123456',
+#         'PORT': '1433',  # Set to empty string for default. Not used with sqlite3.
+#         'OPTIONS': {
+#             'host_is_server': True,
+#             'dsn': 'rencuiliang',##需要在电脑上使用odbc创建数据源odbc_jlad
+#         },
+#     }
+# }
+
+DATABASES = {
+    'default': {
+        'ENGINE': 'sql_server.pyodbc',
+        'NAME': 'DB_2019',
+        'USER': 'sa',
+        'PASSWORD': '123456',
+        'HOST': '127.0.0.1',
+        'PORT': '1433',
+        'OPTIONS': {
+            'driver': 'SQL Server Native Client 10.0',
+        },
+    },
+}
+
+DATABASE_CONNECTION_POOLING = True
+
+# Password validation
+# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators
+
+AUTH_PASSWORD_VALIDATORS = [
+    {
+        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
+    },
+    {
+        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
+    },
+    {
+        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
+    },
+    {
+        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
+    },
+]
+
+
+# Internationalization
+# https://docs.djangoproject.com/en/1.11/topics/i18n/
+
+LANGUAGE_CODE = 'en-us'
+
+TIME_ZONE = 'UTC'
+
+USE_I18N = True
+
+USE_L10N = True
+
+USE_TZ = True
+
+
+# Static files (CSS, JavaScript, Images)
+# https://docs.djangoproject.com/en/1.11/howto/static-files/
+
+STATIC_URL = '/static/'
+
+#配置访问日志
+LOGGING = {
+    'version': 1,
+    'disable_existing_loggers': False,  # 是否禁用已经存在的日志器
+    'formatters': {  # 日志信息显示的格式
+        'verbose': {
+            'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
+        },
+        'simple': {
+            'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
+        },
+    },
+    'filters': {  # 对日志进行过滤
+        'require_debug_true': {  # django在debug模式下才输出日志
+            '()': 'django.utils.log.RequireDebugTrue',
+        },
+    },
+    'handlers': {  # 日志处理方法
+        'console': {  # 向终端中输出日志
+            'level': 'INFO',
+            'filters': ['require_debug_true'],
+            'class': 'logging.StreamHandler',
+            'formatter': 'simple'
+        },
+        'file': {  # 向文件中输出日志
+            'level': 'INFO',
+            'class': 'logging.handlers.RotatingFileHandler',
+            'filename': os.path.join(os.path.dirname(BASE_DIR), 'logs/hwj.log'),  # 日志文件的位置
+            'maxBytes': 100 * 1024 * 1024,#输出日志大小,以字节为单位,也就是一个文件只能存放这个打数据的,超过会新增
+            'backupCount': 10,#最多超过生成10个文件
+            'formatter': 'verbose'
+        },
+    },
+    'loggers': {  # 日志器
+        'django': {  # 定义了一个名为django的日志器
+            'handlers': ['console', 'file'],  # 可以同时向终端与文件中输出日志
+            'propagate': True,  # 是否继续传递日志信息
+            'level': 'INFO',  # 日志器接收的最低日志级别,INFO < debug < warn < error
+        },
+    }
+}
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab

+ 4 - 3
awj/awj/utils/et_CACC_NO.py

@@ -1,19 +1,20 @@
-from django import http
+
 from django.db import connection
 
+
 # 用于判断银行账号是否存在
 
 def et_CACC_NO(CACC_NO):
     """
     :return:
     """
-    if len(CACC_NO)<=0:
+    if len(CACC_NO) <= 0:
         return 'NO'
 
     sql = "SELECT COUNT(*) FROM BACC WHERE BACC_NO=%s" % (CACC_NO)
     with connection.cursor() as cursor:
         # 判断单号是否重复
         SUM_CACC_NO = cursor.execute(sql).fetchall()[0][0]
-    if SUM_CACC_NO <=0:
+    if SUM_CACC_NO <= 0:
         return 'NO'
 

+ 33 - 33
awj/awj/utils/middleware.py

@@ -1,34 +1,34 @@
-import json
-
-from django import http
-
-def middleware(response):
-    def inner(request):
-        user_ok = '123'
-        password_ok = '123'
-        if request.method=='POST':
-            user = request.POST.get("user")
-            password = request.POST.get("password")
-            if user is None:
-                return http.HttpResponseForbidden('请输入用户名')
-            if password is None:
-                return http.HttpResponseForbidden('请输入密码')
-            if user!=user_ok or password!=password_ok:
-                return http.HttpResponseForbidden('账号密码不正确')
-            res = response(request)
-        else:
-            if len(request.body.decode())==0:
-                return http.HttpResponseForbidden('请传入用户名和密码')
-            req_data = json.loads(request.body.decode())
-            user = req_data.get("user")  # 用户名
-            password = req_data.get("password")  # 密码
-            if user is None:
-                return http.HttpResponseForbidden('请输入用户名')
-            if password is None:
-                return http.HttpResponseForbidden('请输入密码')
-            if user!=user_ok or password!=password_ok:
-                return http.HttpResponseForbidden('账号密码不正确')
-            # print(request.method)
-            res = response(request)
-        return res
+import json
+
+from django import http
+
+def middleware(response):
+    def inner(request):
+        user_ok = '123'
+        password_ok = '123'
+        if request.method=='POST':
+            user = request.POST.get("user")
+            password = request.POST.get("password")
+            if user is None:
+                return http.HttpResponseForbidden('请输入用户名')
+            if password is None:
+                return http.HttpResponseForbidden('请输入密码')
+            if user!=user_ok or password!=password_ok:
+                return http.HttpResponseForbidden('账号密码不正确')
+            res = response(request)
+        else:
+            if len(request.body.decode())==0:
+                return http.HttpResponseForbidden('请传入用户名和密码')
+            req_data = json.loads(request.body.decode())
+            user = req_data.get("user")  # 用户名
+            password = req_data.get("password")  # 密码
+            if user is None:
+                return http.HttpResponseForbidden('请输入用户名')
+            if password is None:
+                return http.HttpResponseForbidden('请输入密码')
+            if user!=user_ok or password!=password_ok:
+                return http.HttpResponseForbidden('账号密码不正确')
+            # print(request.method)
+            res = response(request)
+        return res
     return inner

+ 13 - 13
awj/awj/utils/usr_data.py

@@ -1,14 +1,14 @@
-from django.db import connection
-
-def usr_data(USR,USR_NAME,DATE):
-    """
-
-    :param USR: 用户代号
-    :param USR_NAME: 用户名
-    :return:
-    """
-    with connection.cursor() as cursor:
-        row_usr = cursor.execute("SELECT COUNT(*) FROM SALM WHERE SAL_NO=%s", [USR]).fetchall()[0][0]
-        if row_usr == 0:
-            cursor.execute("INSERT INTO SALM(SAL_NO,[NAME],USR,SYS_DATE)VALUES (%s,%s,%s,%s)", [USR, USR_NAME,USR_NAME,DATE])
+from django.db import connection
+
+def usr_data(USR,USR_NAME,DATE):
+    """
+
+    :param USR: 用户代号
+    :param USR_NAME: 用户名
+    :return:
+    """
+    with connection.cursor() as cursor:
+        row_usr = cursor.execute("SELECT COUNT(*) FROM SALM WHERE SAL_NO=%s", [USR]).fetchall()[0][0]
+        if row_usr == 0:
+            cursor.execute("INSERT INTO SALM(SAL_NO,[NAME],USR,SYS_DATE)VALUES (%s,%s,%s,%s)", [USR, USR_NAME,USR_NAME,DATE])
     return "ok"

+ 0 - 4
awj/awj/wsgi.py

@@ -11,8 +11,6 @@ import os
 
 import sys
 
-from setting.dev import BASE_DIR
-
 sys.path.append('e:/12446/PycharmProjects/wangli/wanjia/awj')
 
 from django.core.wsgi import get_wsgi_application
@@ -21,5 +19,3 @@ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "awj.settings.dev")
 
 application = get_wsgi_application()
 
-
-

+ 2406 - 0
awj/logs/hwj.log

@@ -1,3 +1,4 @@
+<<<<<<< HEAD
 WARNING 2019-10-26 15:31:41,879 log 228 Forbidden: /invoice/
 WARNING 2019-10-26 15:31:41,879 basehttp 154 "POST /invoice/ HTTP/1.1" 403 39
 INFO 2019-10-26 15:35:42,526 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
@@ -2849,3 +2850,2408 @@ INFO 2019-11-13 19:25:31,040 autoreload 597 Watching for file changes with StatR
 INFO 2019-11-13 19:25:36,463 basehttp 154 "GET /invoice/ HTTP/1.1" 200 10
 INFO 2019-11-13 19:26:06,113 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\cust_data.py changed, reloading.
 INFO 2019-11-13 19:26:06,938 autoreload 597 Watching for file changes with StatReloader
+=======
+WARNING 2019-10-26 15:31:41,879 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:31:41,879 basehttp 154 "POST /invoice/ HTTP/1.1" 403 39
+INFO 2019-10-26 15:35:42,526 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+WARNING 2019-10-26 15:35:46,076 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:35:46,076 basehttp 154 "POST /invoice/ HTTP/1.1" 403 39
+WARNING 2019-10-26 15:37:52,221 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:37:52,222 basehttp 154 "POST /invoice/ HTTP/1.1" 403 39
+WARNING 2019-10-26 15:39:56,569 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:39:56,570 basehttp 154 "POST /invoice/ HTTP/1.1" 403 21
+WARNING 2019-10-26 15:40:06,688 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:40:06,688 basehttp 154 "POST /invoice/ HTTP/1.1" 403 39
+INFO 2019-10-26 15:41:08,490 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+WARNING 2019-10-26 15:43:52,321 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:43:52,321 basehttp 154 "POST /invoice/ HTTP/1.1" 403 39
+INFO 2019-10-26 15:44:05,338 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+INFO 2019-10-26 15:44:32,840 basehttp 154 "DELETE /invoice/ HTTP/1.1" 200 27
+WARNING 2019-10-26 15:44:36,934 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:44:36,934 basehttp 154 "POST /invoice/ HTTP/1.1" 403 21
+WARNING 2019-10-26 15:44:55,973 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:44:55,973 basehttp 154 "DELETE /invoice/ HTTP/1.1" 403 21
+WARNING 2019-10-26 15:45:16,193 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:45:16,194 basehttp 154 "DELETE /invoice/ HTTP/1.1" 403 21
+INFO 2019-10-26 15:45:32,802 basehttp 154 "DELETE /invoice/ HTTP/1.1" 200 27
+INFO 2019-10-26 15:45:40,839 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+WARNING 2019-10-26 15:45:43,261 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:45:43,262 basehttp 154 "POST /invoice/ HTTP/1.1" 403 21
+INFO 2019-10-26 15:45:51,198 basehttp 154 "DELETE /invoice/ HTTP/1.1" 200 27
+INFO 2019-10-26 15:45:53,169 basehttp 154 "DELETE /invoice/ HTTP/1.1" 200 27
+INFO 2019-10-26 15:45:56,463 basehttp 154 "DELETE /invoice/ HTTP/1.1" 200 27
+INFO 2019-10-26 15:45:57,690 basehttp 154 "DELETE /invoice/ HTTP/1.1" 200 27
+INFO 2019-10-26 15:45:58,635 basehttp 154 "DELETE /invoice/ HTTP/1.1" 200 27
+INFO 2019-10-26 15:45:59,382 basehttp 154 "DELETE /invoice/ HTTP/1.1" 200 27
+WARNING 2019-10-26 15:46:39,703 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:46:39,704 basehttp 154 "DELETE /invoice/ HTTP/1.1" 403 21
+WARNING 2019-10-26 15:46:40,883 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:46:40,883 basehttp 154 "DELETE /invoice/ HTTP/1.1" 403 21
+INFO 2019-10-26 15:46:44,675 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+INFO 2019-10-26 15:46:47,737 basehttp 154 "DELETE /invoice/ HTTP/1.1" 200 27
+WARNING 2019-10-26 15:46:48,995 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:46:48,996 basehttp 154 "DELETE /invoice/ HTTP/1.1" 403 21
+INFO 2019-10-26 15:46:52,536 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+WARNING 2019-10-26 15:46:53,809 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:46:53,809 basehttp 154 "POST /invoice/ HTTP/1.1" 403 21
+WARNING 2019-10-26 15:46:55,169 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:46:55,169 basehttp 154 "POST /invoice/ HTTP/1.1" 403 21
+INFO 2019-10-26 15:47:22,946 basehttp 154 "PUT /invoice/ HTTP/1.1" 200 24
+INFO 2019-10-26 15:47:25,783 basehttp 154 "PUT /invoice/ HTTP/1.1" 200 24
+INFO 2019-10-26 15:47:46,364 basehttp 154 "DELETE /invoice/ HTTP/1.1" 200 27
+WARNING 2019-10-26 15:47:48,702 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:47:48,702 basehttp 154 "DELETE /invoice/ HTTP/1.1" 403 21
+INFO 2019-10-26 15:57:11,237 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+WARNING 2019-10-26 15:57:13,888 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:57:13,889 basehttp 154 "POST /invoice/ HTTP/1.1" 403 21
+WARNING 2019-10-26 15:57:15,422 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 15:57:15,422 basehttp 154 "POST /invoice/ HTTP/1.1" 403 21
+INFO 2019-10-26 15:57:42,581 basehttp 154 "PUT /invoice/ HTTP/1.1" 200 24
+INFO 2019-10-26 15:57:44,459 basehttp 154 "PUT /invoice/ HTTP/1.1" 200 24
+INFO 2019-10-26 15:58:22,380 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+INFO 2019-10-26 16:00:24,377 basehttp 154 "PUT /invoice/ HTTP/1.1" 200 24
+INFO 2019-10-26 16:01:06,398 basehttp 154 "DELETE /invoice/ HTTP/1.1" 200 27
+WARNING 2019-10-26 16:01:08,375 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 16:01:08,376 basehttp 154 "DELETE /invoice/ HTTP/1.1" 403 21
+INFO 2019-10-26 16:01:41,337 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+WARNING 2019-10-26 16:01:42,339 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 16:01:42,339 basehttp 154 "POST /invoice/ HTTP/1.1" 403 21
+WARNING 2019-10-26 16:01:55,226 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 16:01:55,227 basehttp 154 "POST /invoice/ HTTP/1.1" 403 21
+INFO 2019-10-26 16:10:06,833 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+INFO 2019-10-26 16:11:23,976 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+INFO 2019-10-26 16:11:51,199 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+ERROR 2019-10-26 16:22:50,204 log 228 Internal Server Error: /paymentoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 101, in post
+    ,datetime.datetime.strptime(RP_DD, '%Y-%m-%d'),RP_NO])
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 100, in execute
+    return super().execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 68, in execute
+    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 77, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 542, in execute
+    sql = self.format_sql(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 510, in format_sql
+    sql = sql % tuple('?' * len(params))
+TypeError: not all arguments converted during string formatting
+ERROR 2019-10-26 16:22:50,206 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 500 110930
+INFO 2019-10-26 16:24:33,700 basehttp 154 "DELETE /invoice/ HTTP/1.1" 200 27
+WARNING 2019-10-26 16:25:03,979 log 228 Forbidden: /invoice/
+WARNING 2019-10-26 16:25:03,980 basehttp 154 "DELETE /invoice/ HTTP/1.1" 403 48
+INFO 2019-10-26 16:25:17,685 basehttp 154 "DELETE /invoice/ HTTP/1.1" 200 27
+INFO 2019-10-26 16:25:20,901 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+INFO 2019-10-26 16:25:27,596 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+INFO 2019-10-26 16:27:43,951 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+WARNING 2019-10-26 16:47:21,302 log 228 Forbidden: /paymentoperation/
+WARNING 2019-10-26 16:47:21,302 basehttp 154 "PUT /paymentoperation/ HTTP/1.1" 403 15
+WARNING 2019-10-26 16:49:22,716 log 228 Forbidden: /paymentoperation/
+WARNING 2019-10-26 16:49:22,716 basehttp 154 "PUT /paymentoperation/ HTTP/1.1" 403 15
+ERROR 2019-10-26 16:49:54,113 log 228 Internal Server Error: /paymentoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+pyodbc.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]列名 'PR_ID' 无效。 (207) (SQLExecDirectW); [42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]无法预定义语句。 (8180)")
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 180, in put
+    row_AMTN = cursor.execute("""SELECT AMTN_BC FROM TF_MON WHERE RP_NO=%s AND PR_ID='2'""", [RP_NO]).fetchall()[0][0]
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 100, in execute
+    return super().execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 68, in execute
+    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 77, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 89, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+django.db.utils.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]列名 'PR_ID' 无效。 (207) (SQLExecDirectW); [42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]无法预定义语句。 (8180)")
+ERROR 2019-10-26 16:49:54,117 basehttp 154 "PUT /paymentoperation/ HTTP/1.1" 500 126543
+ERROR 2019-10-26 16:50:35,155 log 228 Internal Server Error: /paymentoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+pyodbc.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]列名 'PR_ID' 无效。 (207) (SQLExecDirectW); [42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]无法预定义语句。 (8180)")
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 180, in put
+    row_AMTN = cursor.execute("""SELECT AMTN_BC FROM TF_MON WHERE RP_NO=%s AND PR_ID='2'""", [RP_NO]).fetchall()[0][0]
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 100, in execute
+    return super().execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 68, in execute
+    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 77, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 89, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+django.db.utils.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]列名 'PR_ID' 无效。 (207) (SQLExecDirectW); [42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]无法预定义语句。 (8180)")
+ERROR 2019-10-26 16:50:35,157 basehttp 154 "PUT /paymentoperation/ HTTP/1.1" 500 126546
+ERROR 2019-10-26 16:51:00,696 log 228 Internal Server Error: /paymentoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+pyodbc.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]列名 'PR_ID' 无效。 (207) (SQLExecDirectW); [42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]无法预定义语句。 (8180)")
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 180, in put
+    row_AMTN = cursor.execute("""SELECT AMTN_BC FROM TF_MON WHERE RP_NO=%s AND PR_ID='2'""", [RP_NO]).fetchall()[0][0]
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 100, in execute
+    return super().execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 68, in execute
+    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 77, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 89, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+django.db.utils.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]列名 'PR_ID' 无效。 (207) (SQLExecDirectW); [42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]无法预定义语句。 (8180)")
+ERROR 2019-10-26 16:51:00,698 basehttp 154 "PUT /paymentoperation/ HTTP/1.1" 500 126546
+WARNING 2019-10-26 17:00:46,983 log 228 Forbidden: /paymentoperation/
+WARNING 2019-10-26 17:00:46,983 basehttp 154 "PUT /paymentoperation/ HTTP/1.1" 403 21
+WARNING 2019-10-26 17:00:59,051 log 228 Forbidden: /paymentoperation/
+WARNING 2019-10-26 17:00:59,051 basehttp 154 "PUT /paymentoperation/ HTTP/1.1" 403 21
+WARNING 2019-10-26 17:01:35,345 log 228 Forbidden: /paymentoperation/
+WARNING 2019-10-26 17:01:35,345 basehttp 154 "PUT /paymentoperation/ HTTP/1.1" 403 21
+WARNING 2019-10-26 17:02:54,095 log 228 Forbidden: /paymentoperation/
+WARNING 2019-10-26 17:02:54,095 basehttp 154 "PUT /paymentoperation/ HTTP/1.1" 403 21
+INFO 2019-10-26 17:03:37,523 basehttp 154 "PUT /paymentoperation/ HTTP/1.1" 200 36
+INFO 2019-10-26 17:04:55,512 basehttp 154 "PUT /paymentoperation/ HTTP/1.1" 200 36
+WARNING 2019-10-26 17:30:24,738 log 228 Forbidden: /paymentoperation/
+WARNING 2019-10-26 17:30:24,739 basehttp 154 "DELETE /paymentoperation/ HTTP/1.1" 403 15
+ERROR 2019-10-26 17:30:59,238 log 228 Internal Server Error: /paymentoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+pyodbc.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]列名 'RP_ID' 无效。 (207) (SQLExecDirectW); [42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]无法预定义语句。 (8180)")
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 297, in delete
+    cursor.execute("""DELETE FROM MF_BAC WHERE  BB_NO=%s AND RP_ID='2'""", ['BT'+RP_NO[2::]])
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 100, in execute
+    return super().execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 68, in execute
+    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 77, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 89, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+django.db.utils.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]列名 'RP_ID' 无效。 (207) (SQLExecDirectW); [42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]无法预定义语句。 (8180)")
+ERROR 2019-10-26 17:30:59,241 basehttp 154 "DELETE /paymentoperation/ HTTP/1.1" 500 126111
+INFO 2019-10-26 17:33:53,187 basehttp 154 "DELETE /paymentoperation/ HTTP/1.1" 200 39
+WARNING 2019-10-26 17:34:25,873 log 228 Forbidden: /paymentoperation/
+WARNING 2019-10-26 17:34:25,874 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 403 36
+WARNING 2019-10-26 17:34:33,716 log 228 Forbidden: /paymentoperation/
+WARNING 2019-10-26 17:34:33,716 basehttp 154 "DELETE /paymentoperation/ HTTP/1.1" 403 15
+INFO 2019-10-26 17:39:32,014 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+INFO 2019-10-26 17:39:50,505 basehttp 154 "PUT /paymentoperation/ HTTP/1.1" 200 36
+INFO 2019-10-26 17:40:11,226 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+INFO 2019-10-26 17:48:51,576 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+INFO 2019-10-26 17:49:04,517 basehttp 154 "DELETE /paymentoperation/ HTTP/1.1" 200 39
+INFO 2019-10-26 17:49:13,853 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+INFO 2019-10-26 17:49:17,183 basehttp 154 "DELETE /paymentoperation/ HTTP/1.1" 200 39
+WARNING 2019-10-26 17:49:39,792 log 228 Forbidden: /paymentoperation/
+WARNING 2019-10-26 17:49:39,792 basehttp 154 "DELETE /paymentoperation/ HTTP/1.1" 403 15
+INFO 2019-10-26 18:28:14,669 basehttp 154 "DELETE /paymentoperation/ HTTP/1.1" 200 39
+INFO 2019-10-26 18:28:18,274 basehttp 154 "DELETE /invoice/ HTTP/1.1" 200 27
+INFO 2019-10-26 18:28:21,150 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+WARNING 2019-10-26 18:28:25,458 log 228 Forbidden: /paymentoperation/
+WARNING 2019-10-26 18:28:25,458 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 403 21
+INFO 2019-10-26 18:30:04,306 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+INFO 2019-10-26 18:30:19,015 basehttp 154 "PUT /paymentoperation/ HTTP/1.1" 200 36
+WARNING 2019-10-26 18:30:28,836 log 228 Forbidden: /paymentoperation/
+WARNING 2019-10-26 18:30:28,837 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 403 21
+INFO 2019-10-26 18:30:38,718 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+INFO 2019-10-26 18:31:02,819 basehttp 154 "DELETE /paymentoperation/ HTTP/1.1" 200 39
+INFO 2019-10-26 18:35:00,176 basehttp 154 "DELETE /paymentoperation/ HTTP/1.1" 200 39
+INFO 2019-10-26 18:35:06,199 basehttp 154 "DELETE /invoice/ HTTP/1.1" 200 27
+INFO 2019-10-26 18:35:09,065 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+INFO 2019-10-26 18:35:32,737 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+INFO 2019-10-26 18:35:38,682 basehttp 154 "PUT /paymentoperation/ HTTP/1.1" 200 36
+INFO 2019-10-26 18:35:48,661 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+INFO 2019-10-26 18:35:55,766 basehttp 154 "DELETE /paymentoperation/ HTTP/1.1" 200 39
+INFO 2019-10-28 09:04:08,436 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 200 43
+WARNING 2019-10-28 09:05:08,930 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-10-28 09:05:08,930 basehttp 154 "PUT /expectedpoperation/ HTTP/1.1" 403 15
+INFO 2019-10-28 09:05:19,111 basehttp 154 "PUT /expectedpoperation/ HTTP/1.1" 200 42
+INFO 2019-10-28 09:14:12,133 basehttp 154 "PUT /expectedpoperation/ HTTP/1.1" 200 42
+INFO 2019-10-28 09:23:44,854 basehttp 154 "PUT /expectedpoperation/ HTTP/1.1" 200 42
+INFO 2019-10-28 09:24:13,707 basehttp 154 "PUT /expectedpoperation/ HTTP/1.1" 200 42
+WARNING 2019-10-28 09:24:58,993 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-10-28 09:24:58,993 basehttp 154 "PUT /expectedpoperation/ HTTP/1.1" 403 27
+WARNING 2019-10-28 09:28:41,541 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-10-28 09:28:41,542 basehttp 154 "DELETE /expectedpoperation/ HTTP/1.1" 403 15
+WARNING 2019-10-28 09:29:03,803 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-10-28 09:29:03,803 basehttp 154 "DELETE /expectedpoperation/ HTTP/1.1" 403 15
+INFO 2019-10-28 09:30:24,164 basehttp 154 "DELETE /expectedpoperation/ HTTP/1.1" 200 45
+WARNING 2019-10-28 09:34:09,682 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-10-28 09:34:09,682 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 403 27
+INFO 2019-10-28 09:34:29,286 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 200 43
+INFO 2019-10-28 09:34:49,859 basehttp 154 "PUT /expectedpoperation/ HTTP/1.1" 200 42
+WARNING 2019-10-28 09:35:20,642 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-10-28 09:35:20,643 basehttp 154 "DELETE /expectedpoperation/ HTTP/1.1" 403 33
+WARNING 2019-10-28 09:35:37,100 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-10-28 09:35:37,101 basehttp 154 "DELETE /expectedpoperation/ HTTP/1.1" 403 33
+INFO 2019-10-28 09:39:00,461 basehttp 154 "DELETE /expectedpoperation/ HTTP/1.1" 200 45
+INFO 2019-10-28 09:39:06,134 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+INFO 2019-10-28 09:39:09,613 basehttp 154 "PUT /paymentoperation/ HTTP/1.1" 200 36
+INFO 2019-10-28 09:39:34,619 basehttp 154 "PUT /paymentoperation/ HTTP/1.1" 200 36
+INFO 2019-10-28 09:39:56,474 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 200 43
+INFO 2019-10-28 09:40:00,198 basehttp 154 "PUT /expectedpoperation/ HTTP/1.1" 200 42
+WARNING 2019-10-28 09:40:35,489 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-10-28 09:40:35,490 basehttp 154 "DELETE /expectedpoperation/ HTTP/1.1" 403 33
+INFO 2019-10-28 09:40:42,079 basehttp 154 "DELETE /expectedpoperation/ HTTP/1.1" 200 45
+WARNING 2019-10-28 13:20:21,682 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-10-28 13:20:21,682 basehttp 154 "DELETE /expectedpoperation/ HTTP/1.1" 403 24
+INFO 2019-10-28 13:20:26,561 basehttp 154 "DELETE /paymentoperation/ HTTP/1.1" 200 39
+WARNING 2019-10-28 13:20:30,181 log 228 Forbidden: /invoice/
+WARNING 2019-10-28 13:20:30,182 basehttp 154 "DELETE /invoice/ HTTP/1.1" 403 48
+WARNING 2019-10-28 13:20:47,121 log 228 Forbidden: /paymentoperation/
+WARNING 2019-10-28 13:20:47,122 basehttp 154 "DELETE /paymentoperation/ HTTP/1.1" 403 15
+INFO 2019-10-28 13:20:55,254 basehttp 154 "DELETE /paymentoperation/ HTTP/1.1" 200 39
+INFO 2019-10-28 13:20:58,635 basehttp 154 "DELETE /invoice/ HTTP/1.1" 200 27
+INFO 2019-10-28 13:21:04,731 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+INFO 2019-10-28 13:27:56,959 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 200 43
+WARNING 2019-10-28 13:27:58,680 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-10-28 13:27:58,680 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 403 24
+INFO 2019-10-28 13:28:21,935 basehttp 154 "PUT /expectedpoperation/ HTTP/1.1" 200 42
+INFO 2019-10-28 13:34:02,390 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+INFO 2019-10-28 13:35:23,918 basehttp 154 "POST /expectedptoperation/ HTTP/1.1" 200 55
+INFO 2019-10-28 15:36:48,198 basehttp 154 "PUT /expectedptoperation/ HTTP/1.1" 200 54
+INFO 2019-10-28 15:41:44,910 basehttp 154 "DELETE /expectedptoperation/ HTTP/1.1" 200 57
+WARNING 2019-10-28 15:41:47,353 log 228 Forbidden: /expectedptoperation/
+WARNING 2019-10-28 15:41:47,353 basehttp 154 "DELETE /expectedptoperation/ HTTP/1.1" 403 15
+ERROR 2019-10-28 17:13:21,613 log 228 Internal Server Error: /invoice/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 96, in inner
+    return func(*args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 594, in fetchall
+    return self.format_rows(self.cursor.fetchall())
+pyodbc.ProgrammingError: No results.  Previous SQL was not a query.
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\stockinvoice\views.py", line 25, in get
+    row = cursor.fetchall()
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 96, in inner
+    return func(*args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 89, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 96, in inner
+    return func(*args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 594, in fetchall
+    return self.format_rows(self.cursor.fetchall())
+django.db.utils.ProgrammingError: No results.  Previous SQL was not a query.
+ERROR 2019-10-28 17:13:21,617 basehttp 154 "GET /invoice/ HTTP/1.1" 500 103126
+ERROR 2019-10-28 17:14:09,053 log 228 Internal Server Error: /invoice/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 96, in inner
+    return func(*args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 594, in fetchall
+    return self.format_rows(self.cursor.fetchall())
+pyodbc.ProgrammingError: No results.  Previous SQL was not a query.
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\stockinvoice\views.py", line 26, in get
+    row = cursor.fetchall()
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 96, in inner
+    return func(*args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 89, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 96, in inner
+    return func(*args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 594, in fetchall
+    return self.format_rows(self.cursor.fetchall())
+django.db.utils.ProgrammingError: No results.  Previous SQL was not a query.
+ERROR 2019-10-28 17:14:09,055 basehttp 154 "GET /invoice/ HTTP/1.1" 500 103121
+INFO 2019-10-28 17:14:37,315 basehttp 154 "GET /invoice/ HTTP/1.1" 200 10
+INFO 2019-10-28 17:18:40,853 basehttp 154 "GET /invoice/ HTTP/1.1" 200 10
+INFO 2019-10-28 17:46:37,114 basehttp 154 "GET /invoice/ HTTP/1.1" 200 10
+INFO 2019-10-28 17:47:59,023 basehttp 154 "GET /invoice/ HTTP/1.1" 200 10
+INFO 2019-10-28 17:48:24,002 basehttp 154 "GET /invoice/ HTTP/1.1" 200 10
+INFO 2019-10-29 17:17:19,858 basehttp 154 "GET /sales HTTP/1.1" 301 0
+INFO 2019-10-29 17:17:19,893 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+WARNING 2019-10-29 17:17:19,955 log 228 Not Found: /favicon.ico
+WARNING 2019-10-29 17:17:19,956 basehttp 154 "GET /favicon.ico HTTP/1.1" 404 2790
+INFO 2019-10-30 08:53:29,962 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+WARNING 2019-10-30 09:01:13,540 log 228 Forbidden: /sales/
+WARNING 2019-10-30 09:01:13,540 basehttp 154 "POST /sales/ HTTP/1.1" 403 51
+ERROR 2019-10-30 09:01:22,412 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 82, in post
+    INV_NO,datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),datetime.datetime.strptime(LZ_DD, '%Y-%m-%d')])
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 100, in execute
+    return super().execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 68, in execute
+    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 77, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 542, in execute
+    sql = self.format_sql(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 510, in format_sql
+    sql = sql % tuple('?' * len(params))
+TypeError: not all arguments converted during string formatting
+ERROR 2019-10-30 09:01:22,414 basehttp 154 "POST /sales/ HTTP/1.1" 500 117057
+ERROR 2019-10-30 09:06:26,281 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 137, in _get_response
+    "returned None instead." % (callback.__module__, view_name)
+ValueError: The view salesinvoice.views.salesView didn't return an HttpResponse object. It returned None instead.
+ERROR 2019-10-30 09:06:26,284 basehttp 154 "POST /sales/ HTTP/1.1" 500 61515
+ERROR 2019-10-30 09:08:20,019 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+pyodbc.IntegrityError: ('23000', "[23000] [Microsoft][SQL Server Native Client 10.0][SQL Server]违反了 PRIMARY KEY 约束 'PK__MF_PSS'。不能在对象 'dbo.MF_PSS' 中插入重复键。 (2627) (SQLExecDirectW); [23000] [Microsoft][SQL Server Native Client 10.0][SQL Server]语句已终止。 (3621)")
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 71, in post
+    datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),AMT])
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 100, in execute
+    return super().execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 68, in execute
+    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 77, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 89, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+django.db.utils.IntegrityError: ('23000', "[23000] [Microsoft][SQL Server Native Client 10.0][SQL Server]违反了 PRIMARY KEY 约束 'PK__MF_PSS'。不能在对象 'dbo.MF_PSS' 中插入重复键。 (2627) (SQLExecDirectW); [23000] [Microsoft][SQL Server Native Client 10.0][SQL Server]语句已终止。 (3621)")
+ERROR 2019-10-30 09:08:20,023 basehttp 154 "POST /sales/ HTTP/1.1" 500 133988
+WARNING 2019-10-30 09:09:07,909 log 228 Forbidden: /sales/
+WARNING 2019-10-30 09:09:07,909 basehttp 154 "POST /sales/ HTTP/1.1" 403 27
+INFO 2019-10-30 09:10:51,862 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+INFO 2019-10-30 09:34:16,513 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+ERROR 2019-10-30 09:40:09,694 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+pyodbc.IntegrityError: ('23000', "[23000] [Microsoft][SQL Server Native Client 10.0][SQL Server]违反了 PRIMARY KEY 约束 'PK__TF_LZ'。不能在对象 'dbo.TF_LZ' 中插入重复键。 (2627) (SQLExecDirectW); [23000] [Microsoft][SQL Server Native Client 10.0][SQL Server]语句已终止。 (3621)")
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 90, in post
+    ('LZ',%s,1,%s,%s,%s,'AQ001',1,%s,5,1,1,'SA',1,'服務費用',%s,1,1)""",[ZL_NO, 'SA' + ZL_NO[2::],AMT,AMT,datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'), CUS_NO])
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 100, in execute
+    return super().execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 68, in execute
+    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 77, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 89, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+django.db.utils.IntegrityError: ('23000', "[23000] [Microsoft][SQL Server Native Client 10.0][SQL Server]违反了 PRIMARY KEY 约束 'PK__TF_LZ'。不能在对象 'dbo.TF_LZ' 中插入重复键。 (2627) (SQLExecDirectW); [23000] [Microsoft][SQL Server Native Client 10.0][SQL Server]语句已终止。 (3621)")
+ERROR 2019-10-30 09:40:09,698 basehttp 154 "POST /sales/ HTTP/1.1" 500 133487
+INFO 2019-10-30 09:40:39,938 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+INFO 2019-10-30 09:41:21,053 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+INFO 2019-10-30 09:45:39,565 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+INFO 2019-10-30 09:56:47,597 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+INFO 2019-10-30 09:58:19,521 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+INFO 2019-10-30 10:01:37,714 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+WARNING 2019-10-30 10:15:39,303 log 228 Forbidden: /sales/
+WARNING 2019-10-30 10:15:39,303 basehttp 154 "PUT /sales/ HTTP/1.1" 403 51
+INFO 2019-10-30 10:15:47,263 basehttp 154 "PUT /sales/ HTTP/1.1" 200 60
+ERROR 2019-10-30 10:26:49,687 log 228 Internal Server Error: /invoice/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\stockinvoice\views.py", line 335, in delete
+    req_data = json.loads(request.body.decode())
+  File "e:\12446\appdata\Lib\json\__init__.py", line 354, in loads
+    return _default_decoder.decode(s)
+  File "e:\12446\appdata\Lib\json\decoder.py", line 339, in decode
+    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
+  File "e:\12446\appdata\Lib\json\decoder.py", line 357, in raw_decode
+    raise JSONDecodeError("Expecting value", s, err.value) from None
+json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
+ERROR 2019-10-30 10:26:49,691 basehttp 154 "DELETE /invoice/?ZL_NO=LZS9A300001&ZHANG_ID=3 HTTP/1.1" 500 97827
+WARNING 2019-10-30 10:28:36,918 base 93 Method Not Allowed (DELETE): /sales/
+WARNING 2019-10-30 10:28:36,918 log 228 Method Not Allowed: /sales/
+WARNING 2019-10-30 10:28:36,918 basehttp 154 "DELETE /sales/ HTTP/1.1" 405 0
+WARNING 2019-10-30 10:29:14,406 log 228 Forbidden: /sales/
+WARNING 2019-10-30 10:29:14,406 basehttp 154 "DELETE /sales/ HTTP/1.1" 403 21
+INFO 2019-10-30 10:30:23,997 basehttp 154 "DELETE /sales/ HTTP/1.1" 200 60
+INFO 2019-10-30 10:30:57,516 basehttp 154 "DELETE /sales/ HTTP/1.1" 200 60
+WARNING 2019-10-30 10:31:36,845 log 228 Forbidden: /sales/
+WARNING 2019-10-30 10:31:36,846 basehttp 154 "DELETE /sales/ HTTP/1.1" 403 21
+WARNING 2019-10-30 10:31:41,341 log 228 Forbidden: /sales/
+WARNING 2019-10-30 10:31:41,341 basehttp 154 "DELETE /sales/ HTTP/1.1" 403 21
+ERROR 2019-10-30 10:32:19,311 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+pyodbc.IntegrityError: ('23000', "[23000] [Microsoft][SQL Server Native Client 10.0][SQL Server]违反了 PRIMARY KEY 约束 'PK__MF_PSS'。不能在对象 'dbo.MF_PSS' 中插入重复键。 (2627) (SQLExecDirectW); [23000] [Microsoft][SQL Server Native Client 10.0][SQL Server]语句已终止。 (3621)")
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 75, in post
+    datetime.datetime.strptime(LZ_DD, '%Y-%m-%d'),AMT])
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 100, in execute
+    return super().execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 68, in execute
+    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 77, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 89, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+django.db.utils.IntegrityError: ('23000', "[23000] [Microsoft][SQL Server Native Client 10.0][SQL Server]违反了 PRIMARY KEY 约束 'PK__MF_PSS'。不能在对象 'dbo.MF_PSS' 中插入重复键。 (2627) (SQLExecDirectW); [23000] [Microsoft][SQL Server Native Client 10.0][SQL Server]语句已终止。 (3621)")
+ERROR 2019-10-30 10:32:19,313 basehttp 154 "POST /sales/ HTTP/1.1" 500 133997
+INFO 2019-10-30 10:33:03,845 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+INFO 2019-10-30 10:33:20,400 basehttp 154 "PUT /sales/ HTTP/1.1" 200 60
+INFO 2019-10-30 10:33:29,120 basehttp 154 "DELETE /sales/ HTTP/1.1" 200 63
+INFO 2019-10-30 10:34:34,157 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+INFO 2019-10-30 10:34:36,603 basehttp 154 "PUT /sales/ HTTP/1.1" 200 60
+INFO 2019-10-30 10:34:39,263 basehttp 154 "DELETE /sales/ HTTP/1.1" 200 63
+INFO 2019-10-30 10:34:41,980 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+INFO 2019-10-30 10:56:56,320 basehttp 154 "DELETE /sales/ HTTP/1.1" 200 63
+WARNING 2019-10-30 10:56:58,661 log 228 Forbidden: /sales/
+WARNING 2019-10-30 10:56:58,662 basehttp 154 "DELETE /sales/ HTTP/1.1" 403 21
+INFO 2019-10-30 10:57:02,371 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+INFO 2019-10-30 10:57:05,316 basehttp 154 "PUT /sales/ HTTP/1.1" 200 60
+INFO 2019-10-30 10:57:08,645 basehttp 154 "DELETE /sales/ HTTP/1.1" 200 63
+WARNING 2019-10-30 10:57:09,693 log 228 Forbidden: /sales/
+WARNING 2019-10-30 10:57:09,693 basehttp 154 "DELETE /sales/ HTTP/1.1" 403 21
+INFO 2019-10-30 11:02:59,771 basehttp 154 "GET /proceeds HTTP/1.1" 301 0
+INFO 2019-10-30 11:02:59,783 basehttp 154 "GET /proceeds/ HTTP/1.1" 200 48
+WARNING 2019-10-30 11:36:24,589 log 228 Forbidden: /invoice/
+WARNING 2019-10-30 11:36:24,590 basehttp 154 "POST /invoice/ HTTP/1.1" 403 21
+INFO 2019-10-30 11:37:26,909 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+ERROR 2019-10-30 11:46:51,278 log 228 Internal Server Error: /proceeds
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\utils\deprecation.py", line 90, in __call__
+    response = self.process_request(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\middleware\common.py", line 53, in process_request
+    path = self.get_full_path_with_slash(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\middleware\common.py", line 93, in get_full_path_with_slash
+    'url': request.get_host() + new_path,
+RuntimeError: You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST data. Change your form to point to 127.0.0.1:8000/proceeds/ (note the trailing slash), or set APPEND_SLASH=False in your Django settings.
+ERROR 2019-10-30 11:46:51,279 basehttp 154 "POST /proceeds HTTP/1.1" 500 68450
+ERROR 2019-10-30 11:47:31,389 log 228 Internal Server Error: /proceeds/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 341, in post
+    row_AMT = cursor.execute("SELECT CAST(ISNULL(AMT,0) AS INT ),BIL_NO FROM MF_ARP WHERE BIL_NO=%s",[MF_LZ1]).fetchall()[0][0]
+IndexError: list index out of range
+ERROR 2019-10-30 11:47:31,391 basehttp 154 "POST /proceeds/ HTTP/1.1" 500 85496
+INFO 2019-10-30 13:22:08,693 basehttp 154 "POST /proceeds/ HTTP/1.1" 200 49
+INFO 2019-10-30 13:42:52,852 basehttp 154 "POST /proceeds/ HTTP/1.1" 200 49
+INFO 2019-10-30 13:48:15,671 basehttp 154 "POST /proceeds/ HTTP/1.1" 200 49
+INFO 2019-10-30 13:51:34,234 basehttp 154 "POST /proceeds/ HTTP/1.1" 200 49
+INFO 2019-10-30 13:54:59,562 basehttp 154 "POST /proceeds/ HTTP/1.1" 200 49
+INFO 2019-10-30 13:58:43,435 basehttp 154 "POST /proceeds/ HTTP/1.1" 200 49
+INFO 2019-10-30 14:28:41,733 basehttp 154 "PUT /proceeds/ HTTP/1.1" 200 48
+INFO 2019-10-30 14:30:16,253 basehttp 154 "PUT /proceeds/ HTTP/1.1" 200 48
+INFO 2019-10-30 14:30:17,254 basehttp 154 "PUT /proceeds/ HTTP/1.1" 200 48
+WARNING 2019-10-30 14:33:00,957 log 228 Forbidden: /proceeds/
+WARNING 2019-10-30 14:33:00,958 basehttp 154 "PUT /proceeds/ HTTP/1.1" 403 21
+INFO 2019-10-30 14:33:29,952 basehttp 154 "PUT /proceeds/ HTTP/1.1" 200 48
+ERROR 2019-10-30 14:44:53,711 log 228 Internal Server Error: /proceeds/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 453, in delete
+    row_AMTN_MF_ARP = cursor.execute("""SELECT AMTN FROM MF_ARP WHERE BIL_NO=%s""", [MF_LZ1]).fetchall()[0][0]
+IndexError: list index out of range
+ERROR 2019-10-30 14:44:53,712 basehttp 154 "DELETE /proceeds/ HTTP/1.1" 500 83376
+ERROR 2019-10-30 14:45:59,949 log 228 Internal Server Error: /proceeds/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 453, in delete
+    row_AMTN_MF_ARP = cursor.execute("""SELECT AMTN FROM MF_ARP WHERE BIL_NO=%s""", [MF_LZ1]).fetchall()[0][0]
+IndexError: list index out of range
+ERROR 2019-10-30 14:45:59,951 basehttp 154 "DELETE /proceeds/ HTTP/1.1" 500 83376
+INFO 2019-10-30 14:47:40,695 basehttp 154 "DELETE /proceeds/ HTTP/1.1" 200 51
+INFO 2019-10-30 14:48:14,594 basehttp 154 "DELETE /sales/ HTTP/1.1" 200 63
+INFO 2019-10-30 14:48:20,519 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+INFO 2019-10-30 14:48:27,205 basehttp 154 "POST /proceeds/ HTTP/1.1" 200 49
+INFO 2019-10-30 14:49:02,467 basehttp 154 "PUT /proceeds/ HTTP/1.1" 200 48
+INFO 2019-10-30 14:49:05,827 basehttp 154 "DELETE /proceeds/ HTTP/1.1" 200 51
+INFO 2019-10-30 14:51:28,576 basehttp 154 "DELETE /sales/ HTTP/1.1" 200 63
+INFO 2019-10-30 14:51:31,576 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+INFO 2019-10-30 14:51:33,701 basehttp 154 "POST /proceeds/ HTTP/1.1" 200 49
+INFO 2019-10-30 14:51:37,598 basehttp 154 "PUT /proceeds/ HTTP/1.1" 200 48
+INFO 2019-10-30 14:56:00,429 basehttp 154 "DELETE /proceeds/ HTTP/1.1" 200 51
+WARNING 2019-10-30 15:01:11,277 log 228 Forbidden: /proceeds/
+WARNING 2019-10-30 15:01:11,277 basehttp 154 "DELETE /proceeds/ HTTP/1.1" 403 21
+INFO 2019-10-30 15:01:14,914 basehttp 154 "DELETE /sales/ HTTP/1.1" 200 63
+INFO 2019-10-30 15:01:18,717 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+INFO 2019-10-30 15:01:23,694 basehttp 154 "POST /proceeds/ HTTP/1.1" 200 49
+INFO 2019-10-30 15:01:27,030 basehttp 154 "PUT /proceeds/ HTTP/1.1" 200 48
+INFO 2019-10-30 15:01:32,025 basehttp 154 "DELETE /proceeds/ HTTP/1.1" 200 51
+INFO 2019-10-30 16:11:57,129 basehttp 154 "POST /predictproceeds/ HTTP/1.1" 200 61
+INFO 2019-10-30 18:00:39,949 basehttp 154 "PUT /predictproceeds/ HTTP/1.1" 200 60
+ERROR 2019-10-30 18:08:10,643 log 228 Internal Server Error: /predictproceeds/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+pyodbc.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]列名 'RP_ID' 无效。 (207) (SQLExecDirectW); [42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]无法预定义语句。 (8180)")
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 626, in delete
+    cursor.execute("""DELETE FROM MF_BAC WHERE BB_NO=%s  AND RP_ID='2'""", ['BT' + RP_NO[2::]])
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 100, in execute
+    return super().execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 68, in execute
+    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 77, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 89, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+django.db.utils.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]列名 'RP_ID' 无效。 (207) (SQLExecDirectW); [42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]无法预定义语句。 (8180)")
+ERROR 2019-10-30 18:08:10,646 basehttp 154 "DELETE /predictproceeds/ HTTP/1.1" 500 125242
+ERROR 2019-10-30 18:08:34,925 log 228 Internal Server Error: /predictproceeds/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+pyodbc.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]列名 'RP_ID' 无效。 (207) (SQLExecDirectW); [42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]无法预定义语句。 (8180)")
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 626, in delete
+    cursor.execute("""DELETE FROM MF_BAC WHERE BB_NO=%s  AND RP_ID='2'""", ['BT' + RP_NO[2::]])
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 100, in execute
+    return super().execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 68, in execute
+    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 77, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 89, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+django.db.utils.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]列名 'RP_ID' 无效。 (207) (SQLExecDirectW); [42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]无法预定义语句。 (8180)")
+ERROR 2019-10-30 18:08:34,928 basehttp 154 "DELETE /predictproceeds/ HTTP/1.1" 500 125223
+INFO 2019-10-30 18:09:15,961 basehttp 154 "DELETE /sales/ HTTP/1.1" 200 63
+INFO 2019-10-30 18:17:25,623 basehttp 154 "DELETE /predictproceeds/ HTTP/1.1" 200 63
+INFO 2019-10-30 18:21:25,330 basehttp 154 "POST /predictproceeds/ HTTP/1.1" 200 61
+INFO 2019-10-30 18:21:37,718 basehttp 154 "PUT /predictproceeds/ HTTP/1.1" 200 60
+INFO 2019-10-30 18:21:49,575 basehttp 154 "DELETE /predictproceeds/ HTTP/1.1" 200 63
+INFO 2019-10-30 18:46:52,323 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 200 48
+INFO 2019-10-30 18:49:24,957 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 200 48
+INFO 2019-10-30 18:52:07,282 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 200 48
+INFO 2019-10-30 18:54:11,644 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 200 48
+INFO 2019-10-30 18:54:19,095 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 200 48
+INFO 2019-10-30 18:55:30,664 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 200 48
+INFO 2019-10-30 18:56:07,419 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 200 48
+INFO 2019-10-30 18:56:39,652 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 200 48
+WARNING 2019-10-30 18:56:57,110 log 228 Forbidden: /predictproceeds/
+WARNING 2019-10-30 18:56:57,110 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 403 21
+INFO 2019-10-30 18:57:26,353 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 200 48
+INFO 2019-10-30 18:57:44,762 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 200 48
+INFO 2019-10-30 18:58:17,613 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 200 48
+INFO 2019-10-30 18:58:46,677 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 200 48
+WARNING 2019-10-30 18:59:32,970 log 228 Forbidden: /predictproceeds/
+WARNING 2019-10-30 18:59:32,971 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 403 21
+ERROR 2019-10-30 19:03:56,102 log 228 Internal Server Error: /predictproceeds/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py", line 19, in inner
+    print(name)
+NameError: name 'name' is not defined
+ERROR 2019-10-30 19:03:56,103 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 500 58158
+INFO 2019-10-30 19:04:16,724 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 200 48
+WARNING 2019-10-30 19:04:51,537 log 228 Forbidden: /predictproceeds/
+WARNING 2019-10-30 19:04:51,537 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 403 21
+WARNING 2019-10-30 19:05:54,675 log 228 Forbidden: /predictproceeds/
+WARNING 2019-10-30 19:05:54,676 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 403 21
+WARNING 2019-10-31 11:07:56,865 log 228 Forbidden: /predictproceeds/
+WARNING 2019-10-31 11:07:56,866 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 403 21
+INFO 2019-10-31 11:08:37,578 basehttp 154 "GET /predictproceeds/ HTTP/1.1" 200 48
+INFO 2019-10-31 11:29:48,607 basehttp 154 "POST /predictproceeds/ HTTP/1.1" 200 61
+INFO 2019-10-31 11:34:16,468 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+INFO 2019-10-31 11:34:38,641 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+ERROR 2019-10-31 11:36:32,992 log 228 Internal Server Error: /predictproceeds/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 512, in post
+    row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
+TypeError: strptime() argument 1 must be str, not None
+ERROR 2019-10-31 11:36:32,995 basehttp 154 "POST /predictproceeds/ HTTP/1.1" 500 83363
+ERROR 2019-10-31 11:39:07,545 log 228 Internal Server Error: /predictpayment/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 702, in post
+    yf_sum =round(yf_sum + cursor.execute("""SELECT AMTN FROM MF_ARP WHERE BIL_NO=%s""", [i["DH"]]).fetchall()[0][0], 4)
+IndexError: list index out of range
+ERROR 2019-10-31 11:39:07,548 basehttp 154 "POST /predictpayment/ HTTP/1.1" 500 84378
+INFO 2019-10-31 13:14:18,613 basehttp 154 "POST /predictpayment/ HTTP/1.1" 200 55
+ERROR 2019-10-31 13:19:29,067 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 225, in delete
+    if int(ZHANG_ID) != 1 and int(ZHANG_ID) != 2:
+TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
+ERROR 2019-10-31 13:19:29,069 basehttp 154 "DELETE /sales/ HTTP/1.1" 500 82324
+WARNING 2019-10-31 13:21:26,048 log 228 Forbidden: /sales/
+WARNING 2019-10-31 13:21:26,049 basehttp 154 "DELETE /sales/ HTTP/1.1" 403 21
+ERROR 2019-10-31 13:21:45,155 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 230, in delete
+    row_TC_MON = examine_ood('TC_MON', 'RP_NO', 'AR' + ZL_NO[2::], 'RP_ID', '1')
+TypeError: 'NoneType' object is not subscriptable
+ERROR 2019-10-31 13:21:45,157 basehttp 154 "DELETE /sales/ HTTP/1.1" 500 82315
+INFO 2019-10-31 13:24:53,745 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+INFO 2019-10-31 13:25:03,975 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+INFO 2019-10-31 13:25:22,981 basehttp 154 "POST /predictpayment/ HTTP/1.1" 200 55
+INFO 2019-10-31 13:26:44,203 basehttp 154 "POST /predictpayment/ HTTP/1.1" 200 55
+WARNING 2019-10-31 13:40:15,886 log 228 Forbidden: /predictpayment/
+WARNING 2019-10-31 13:40:15,888 basehttp 154 "PUT /predictpayment/ HTTP/1.1" 403 18
+INFO 2019-10-31 13:40:40,334 basehttp 154 "PUT /predictpayment/ HTTP/1.1" 200 54
+ERROR 2019-10-31 13:54:42,877 log 228 Internal Server Error: /predictpayment/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]'RP_ID' 附近有语法错误。 (102) (SQLExecDirectW); [42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]无法预定义语句。 (8180)")
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 891, in delete
+    cursor.execute("""DELETE FROM TF_MON1 WHERE RP_NO=%s RP_ID='1'""", [RP_NO])
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 100, in execute
+    return super().execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 68, in execute
+    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 77, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\utils.py", line 89, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\sql_server\pyodbc\base.py", line 546, in execute
+    return self.cursor.execute(sql, params)
+django.db.utils.ProgrammingError: ('42000', "[42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]'RP_ID' 附近有语法错误。 (102) (SQLExecDirectW); [42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]无法预定义语句。 (8180)")
+ERROR 2019-10-31 13:54:42,882 basehttp 154 "DELETE /predictpayment/ HTTP/1.1" 500 127177
+INFO 2019-10-31 13:58:39,440 basehttp 154 "DELETE /predictpayment/ HTTP/1.1" 200 57
+INFO 2019-10-31 13:59:16,898 basehttp 154 "POST /predictpayment/ HTTP/1.1" 200 55
+INFO 2019-10-31 13:59:30,475 basehttp 154 "PUT /predictpayment/ HTTP/1.1" 200 54
+INFO 2019-10-31 13:59:47,133 basehttp 154 "DELETE /predictpayment/ HTTP/1.1" 200 57
+WARNING 2019-11-01 13:19:01,710 log 228 Forbidden: /sales/
+WARNING 2019-11-01 13:19:01,815 basehttp 154 "POST /sales/ HTTP/1.1" 403 77
+INFO 2019-11-01 13:19:18,508 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+WARNING 2019-11-01 13:20:50,209 log 228 Forbidden: /sales/
+WARNING 2019-11-01 13:20:50,209 basehttp 154 "POST /sales/ HTTP/1.1" 403 27
+WARNING 2019-11-01 13:21:24,074 log 228 Forbidden: /sales/
+WARNING 2019-11-01 13:21:24,074 basehttp 154 "POST /sales/ HTTP/1.1" 403 27
+WARNING 2019-11-01 13:22:01,120 log 228 Forbidden: /sales/
+WARNING 2019-11-01 13:22:01,121 basehttp 154 "POST /sales/ HTTP/1.1" 403 77
+WARNING 2019-11-01 13:23:02,571 log 228 Forbidden: /sales/
+WARNING 2019-11-01 13:23:02,571 basehttp 154 "POST /sales/ HTTP/1.1" 403 21
+WARNING 2019-11-01 13:23:15,243 log 228 Forbidden: /sales/
+WARNING 2019-11-01 13:23:15,243 basehttp 154 "POST /sales/ HTTP/1.1" 403 27
+INFO 2019-11-01 13:23:27,865 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+WARNING 2019-11-01 13:31:04,968 log 228 Forbidden: /sales/
+WARNING 2019-11-01 13:31:04,968 basehttp 154 "PUT /sales/ HTTP/1.1" 403 45
+INFO 2019-11-01 13:32:14,626 basehttp 154 "PUT /sales/ HTTP/1.1" 200 60
+ERROR 2019-11-01 13:33:57,082 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 182, in put
+    if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(AMT) is None:
+TypeError: expected string or bytes-like object
+ERROR 2019-11-01 13:33:57,084 basehttp 154 "PUT /sales/ HTTP/1.1" 500 85230
+ERROR 2019-11-01 13:34:35,913 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 182, in put
+    if re.compile('(^-?[0-9](\d+)?(\.\d{1,6})?$)|(^0$)|(^\d\.\d{1,2}$)').match(AMT) is None:
+TypeError: expected string or bytes-like object
+ERROR 2019-11-01 13:34:35,971 basehttp 154 "PUT /sales/ HTTP/1.1" 500 85229
+WARNING 2019-11-01 13:36:30,555 log 228 Forbidden: /sales/
+WARNING 2019-11-01 13:36:30,556 basehttp 154 "PUT /sales/ HTTP/1.1" 403 51
+WARNING 2019-11-01 13:36:54,761 log 228 Forbidden: /sales/
+WARNING 2019-11-01 13:36:54,761 basehttp 154 "PUT /sales/ HTTP/1.1" 403 51
+INFO 2019-11-01 13:43:51,173 basehttp 154 "DELETE /sales/ HTTP/1.1" 200 63
+INFO 2019-11-01 13:49:22,907 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+WARNING 2019-11-01 14:11:30,593 log 228 Forbidden: /proceeds/
+WARNING 2019-11-01 14:11:30,594 basehttp 154 "POST /proceeds/ HTTP/1.1" 403 77
+WARNING 2019-11-01 14:11:39,487 log 228 Forbidden: /proceeds/
+WARNING 2019-11-01 14:11:39,488 basehttp 154 "POST /proceeds/ HTTP/1.1" 403 77
+WARNING 2019-11-01 14:11:49,961 log 228 Forbidden: /proceeds/
+WARNING 2019-11-01 14:11:49,962 basehttp 154 "POST /proceeds/ HTTP/1.1" 403 77
+WARNING 2019-11-01 14:12:55,961 log 228 Forbidden: /proceeds/
+WARNING 2019-11-01 14:12:55,962 basehttp 154 "POST /proceeds/ HTTP/1.1" 403 77
+WARNING 2019-11-01 14:13:08,152 log 228 Forbidden: /proceeds/
+WARNING 2019-11-01 14:13:08,153 basehttp 154 "POST /proceeds/ HTTP/1.1" 403 21
+INFO 2019-11-01 14:13:13,947 basehttp 154 "POST /proceeds/ HTTP/1.1" 200 49
+ERROR 2019-11-01 14:25:21,711 log 228 Internal Server Error: /proceeds/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 403, in put
+    req_data = json.loads(request.body.decode())
+  File "e:\12446\appdata\Lib\json\__init__.py", line 354, in loads
+    return _default_decoder.decode(s)
+  File "e:\12446\appdata\Lib\json\decoder.py", line 339, in decode
+    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
+  File "e:\12446\appdata\Lib\json\decoder.py", line 355, in raw_decode
+    obj, end = self.scan_once(s, idx)
+json.decoder.JSONDecodeError: Expecting ',' delimiter: line 4 column 17 (char 73)
+ERROR 2019-11-01 14:25:21,714 basehttp 154 "PUT /proceeds/ HTTP/1.1" 500 94811
+WARNING 2019-11-01 14:26:31,795 log 228 Forbidden: /proceeds/
+WARNING 2019-11-01 14:26:31,795 basehttp 154 "PUT /proceeds/ HTTP/1.1" 403 21
+ERROR 2019-11-01 14:26:55,614 log 228 Internal Server Error: /proceeds/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 403, in put
+    req_data = json.loads(request.body.decode())
+  File "e:\12446\appdata\Lib\json\__init__.py", line 354, in loads
+    return _default_decoder.decode(s)
+  File "e:\12446\appdata\Lib\json\decoder.py", line 339, in decode
+    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
+  File "e:\12446\appdata\Lib\json\decoder.py", line 355, in raw_decode
+    obj, end = self.scan_once(s, idx)
+json.decoder.JSONDecodeError: Expecting ',' delimiter: line 4 column 17 (char 73)
+ERROR 2019-11-01 14:26:55,616 basehttp 154 "PUT /proceeds/ HTTP/1.1" 500 94808
+WARNING 2019-11-01 14:27:03,962 log 228 Forbidden: /proceeds/
+WARNING 2019-11-01 14:27:03,963 basehttp 154 "PUT /proceeds/ HTTP/1.1" 403 21
+INFO 2019-11-01 14:29:09,194 basehttp 154 "PUT /proceeds/ HTTP/1.1" 200 48
+INFO 2019-11-01 14:34:53,249 basehttp 154 "DELETE /proceeds/ HTTP/1.1" 200 51
+WARNING 2019-11-01 14:49:17,092 log 228 Forbidden: /predictproceeds/
+WARNING 2019-11-01 14:49:17,093 basehttp 154 "POST /predictproceeds/ HTTP/1.1" 403 81
+WARNING 2019-11-01 14:49:24,441 log 228 Forbidden: /predictproceeds/
+WARNING 2019-11-01 14:49:24,441 basehttp 154 "POST /predictproceeds/ HTTP/1.1" 403 81
+WARNING 2019-11-01 14:49:58,609 log 228 Forbidden: /predictproceeds/
+WARNING 2019-11-01 14:49:58,610 basehttp 154 "POST /predictproceeds/ HTTP/1.1" 403 81
+WARNING 2019-11-01 14:50:23,437 log 228 Forbidden: /predictproceeds/
+WARNING 2019-11-01 14:50:23,437 basehttp 154 "POST /predictproceeds/ HTTP/1.1" 403 81
+WARNING 2019-11-01 14:50:40,875 log 228 Forbidden: /predictproceeds/
+WARNING 2019-11-01 14:50:40,876 basehttp 154 "POST /predictproceeds/ HTTP/1.1" 403 21
+INFO 2019-11-01 14:51:20,192 basehttp 154 "POST /predictproceeds/ HTTP/1.1" 200 61
+WARNING 2019-11-01 15:22:53,636 log 228 Forbidden: /predictproceeds/
+WARNING 2019-11-01 15:22:53,636 basehttp 154 "PUT /predictproceeds/ HTTP/1.1" 403 81
+WARNING 2019-11-01 15:23:04,357 log 228 Forbidden: /predictproceeds/
+WARNING 2019-11-01 15:23:04,358 basehttp 154 "PUT /predictproceeds/ HTTP/1.1" 403 81
+WARNING 2019-11-01 15:23:12,163 log 228 Forbidden: /predictproceeds/
+WARNING 2019-11-01 15:23:12,164 basehttp 154 "PUT /predictproceeds/ HTTP/1.1" 403 21
+INFO 2019-11-01 15:23:16,541 basehttp 154 "PUT /predictproceeds/ HTTP/1.1" 200 60
+INFO 2019-11-01 15:23:30,904 basehttp 154 "PUT /predictproceeds/ HTTP/1.1" 200 60
+INFO 2019-11-01 15:33:26,037 basehttp 154 "DELETE /predictproceeds/ HTTP/1.1" 200 63
+INFO 2019-11-01 15:34:24,768 basehttp 154 "POST /predictproceeds/ HTTP/1.1" 200 61
+INFO 2019-11-01 15:34:43,307 basehttp 154 "DELETE /predictproceeds/ HTTP/1.1" 200 63
+INFO 2019-11-01 15:35:49,807 basehttp 154 "POST /predictproceeds/ HTTP/1.1" 200 61
+WARNING 2019-11-01 16:04:28,431 log 228 Forbidden: /predictpayment/
+WARNING 2019-11-01 16:04:28,432 basehttp 154 "POST /predictpayment/ HTTP/1.1" 403 81
+WARNING 2019-11-01 16:23:08,201 log 228 Forbidden: /predictpayment/
+WARNING 2019-11-01 16:23:08,202 basehttp 154 "POST /predictpayment/ HTTP/1.1" 403 78
+WARNING 2019-11-01 16:23:54,853 log 228 Forbidden: /predictpayment/
+WARNING 2019-11-01 16:23:54,854 basehttp 154 "POST /predictpayment/ HTTP/1.1" 403 77
+WARNING 2019-11-01 16:24:53,507 log 228 Forbidden: /predictpayment/
+WARNING 2019-11-01 16:24:53,507 basehttp 154 "POST /predictpayment/ HTTP/1.1" 403 24
+ERROR 2019-11-01 16:25:57,326 log 228 Internal Server Error: /predictpayment/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 760, in post
+    req_data = json.loads(request.body.decode())
+  File "e:\12446\appdata\Lib\json\__init__.py", line 354, in loads
+    return _default_decoder.decode(s)
+  File "e:\12446\appdata\Lib\json\decoder.py", line 339, in decode
+    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
+  File "e:\12446\appdata\Lib\json\decoder.py", line 355, in raw_decode
+    obj, end = self.scan_once(s, idx)
+json.decoder.JSONDecodeError: Expecting ',' delimiter: line 9 column 19 (char 200)
+ERROR 2019-11-01 16:25:57,329 basehttp 154 "POST /predictpayment/ HTTP/1.1" 500 95999
+WARNING 2019-11-01 16:26:14,247 log 228 Forbidden: /predictpayment/
+WARNING 2019-11-01 16:26:14,247 basehttp 154 "POST /predictpayment/ HTTP/1.1" 403 24
+WARNING 2019-11-01 16:27:08,761 log 228 Forbidden: /predictpayment/
+WARNING 2019-11-01 16:27:08,761 basehttp 154 "POST /predictpayment/ HTTP/1.1" 403 24
+ERROR 2019-11-01 16:27:36,380 log 228 Internal Server Error: /predictpayment/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 811, in post
+    sum_ATM = round(sum_ATM + i["ATM"], 4)
+TypeError: unsupported operand type(s) for +: 'int' and 'str'
+ERROR 2019-11-01 16:27:36,380 basehttp 154 "POST /predictpayment/ HTTP/1.1" 500 84315
+WARNING 2019-11-01 16:28:56,052 log 228 Forbidden: /predictpayment/
+WARNING 2019-11-01 16:28:56,052 basehttp 154 "POST /predictpayment/ HTTP/1.1" 403 21
+WARNING 2019-11-01 16:29:36,517 log 228 Forbidden: /predictpayment/
+WARNING 2019-11-01 16:29:36,517 basehttp 154 "POST /predictpayment/ HTTP/1.1" 403 77
+WARNING 2019-11-01 16:29:51,042 log 228 Forbidden: /predictpayment/
+WARNING 2019-11-01 16:29:51,042 basehttp 154 "POST /predictpayment/ HTTP/1.1" 403 77
+INFO 2019-11-01 16:31:22,212 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+WARNING 2019-11-01 16:31:48,381 log 228 Forbidden: /predictpayment/
+WARNING 2019-11-01 16:31:48,381 basehttp 154 "POST /predictpayment/ HTTP/1.1" 403 77
+WARNING 2019-11-01 16:32:48,505 log 228 Forbidden: /predictpayment/
+WARNING 2019-11-01 16:32:48,506 basehttp 154 "POST /predictpayment/ HTTP/1.1" 403 77
+WARNING 2019-11-01 16:33:19,688 log 228 Forbidden: /predictpayment/
+WARNING 2019-11-01 16:33:19,688 basehttp 154 "POST /predictpayment/ HTTP/1.1" 403 77
+ERROR 2019-11-01 16:34:02,695 log 228 Internal Server Error: /predictpayment/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 68, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\awj\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 818, in post
+    sum_ATM = round(sum_ATM + i["ATM"], 4)
+TypeError: unsupported operand type(s) for +: 'int' and 'str'
+ERROR 2019-11-01 16:34:02,698 basehttp 154 "POST /predictpayment/ HTTP/1.1" 500 84445
+INFO 2019-11-01 16:34:47,995 basehttp 154 "POST /predictpayment/ HTTP/1.1" 200 55
+WARNING 2019-11-01 16:45:10,035 log 228 Forbidden: /predictpayment/
+WARNING 2019-11-01 16:45:10,036 basehttp 154 "PUT /predictpayment/ HTTP/1.1" 403 78
+WARNING 2019-11-01 16:45:26,850 log 228 Forbidden: /predictpayment/
+WARNING 2019-11-01 16:45:26,851 basehttp 154 "PUT /predictpayment/ HTTP/1.1" 403 24
+WARNING 2019-11-01 16:45:33,334 log 228 Forbidden: /predictpayment/
+WARNING 2019-11-01 16:45:33,334 basehttp 154 "PUT /predictpayment/ HTTP/1.1" 403 21
+WARNING 2019-11-01 16:45:38,530 log 228 Forbidden: /predictpayment/
+WARNING 2019-11-01 16:45:38,530 basehttp 154 "PUT /predictpayment/ HTTP/1.1" 403 77
+INFO 2019-11-01 16:45:52,084 basehttp 154 "PUT /predictpayment/ HTTP/1.1" 200 54
+INFO 2019-11-01 16:56:10,281 basehttp 154 "DELETE /predictpayment/ HTTP/1.1" 200 57
+INFO 2019-11-01 16:56:39,119 basehttp 154 "POST /predictpayment/ HTTP/1.1" 200 55
+INFO 2019-11-01 16:56:42,481 basehttp 154 "PUT /predictpayment/ HTTP/1.1" 200 54
+INFO 2019-11-01 17:08:00,063 basehttp 154 "POST /predictproceeds/ HTTP/1.1" 200 61
+INFO 2019-11-01 17:09:56,722 basehttp 154 "POST /proceeds/ HTTP/1.1" 200 49
+INFO 2019-11-03 09:31:11,225 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+WARNING 2019-11-03 09:33:59,721 log 228 Forbidden: /invoice/
+WARNING 2019-11-03 09:33:59,722 basehttp 154 "POST /invoice/ HTTP/1.1" 403 77
+WARNING 2019-11-03 09:35:05,095 log 228 Forbidden: /invoice/
+WARNING 2019-11-03 09:35:05,095 basehttp 154 "POST /invoice/ HTTP/1.1" 403 77
+WARNING 2019-11-03 09:35:20,688 log 228 Forbidden: /invoice/
+WARNING 2019-11-03 09:35:20,689 basehttp 154 "POST /invoice/ HTTP/1.1" 403 77
+WARNING 2019-11-03 09:35:52,639 log 228 Forbidden: /invoice/
+WARNING 2019-11-03 09:35:52,640 basehttp 154 "POST /invoice/ HTTP/1.1" 403 77
+INFO 2019-11-03 09:36:15,440 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+WARNING 2019-11-03 09:36:19,691 log 228 Forbidden: /invoice/
+WARNING 2019-11-03 09:36:19,691 basehttp 154 "POST /invoice/ HTTP/1.1" 403 21
+WARNING 2019-11-03 09:36:30,801 log 228 Forbidden: /invoice/
+WARNING 2019-11-03 09:36:30,802 basehttp 154 "POST /invoice/ HTTP/1.1" 403 21
+WARNING 2019-11-03 09:40:34,660 log 228 Forbidden: /predictpayment/
+WARNING 2019-11-03 09:40:34,661 basehttp 154 "PUT /predictpayment/ HTTP/1.1" 403 21
+WARNING 2019-11-03 09:44:21,215 log 228 Forbidden: /invoice/
+WARNING 2019-11-03 09:44:21,215 basehttp 154 "PUT /invoice/ HTTP/1.1" 403 77
+WARNING 2019-11-03 09:44:32,753 log 228 Forbidden: /invoice/
+WARNING 2019-11-03 09:44:32,753 basehttp 154 "PUT /invoice/ HTTP/1.1" 403 51
+INFO 2019-11-03 09:44:40,144 basehttp 154 "PUT /invoice/ HTTP/1.1" 200 24
+INFO 2019-11-03 09:51:45,857 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+INFO 2019-11-03 09:52:28,758 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+WARNING 2019-11-03 09:56:09,368 log 228 Forbidden: /paymentoperation/
+WARNING 2019-11-03 09:56:09,368 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 403 77
+WARNING 2019-11-03 09:56:30,717 log 228 Forbidden: /paymentoperation/
+WARNING 2019-11-03 09:56:30,717 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 403 21
+WARNING 2019-11-03 09:56:42,839 log 228 Forbidden: /paymentoperation/
+WARNING 2019-11-03 09:56:42,839 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 403 21
+WARNING 2019-11-03 10:09:35,938 log 228 Forbidden: /paymentoperation/
+WARNING 2019-11-03 10:09:35,939 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 403 21
+INFO 2019-11-03 10:10:05,544 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+INFO 2019-11-03 10:10:38,281 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+INFO 2019-11-03 10:14:17,182 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+INFO 2019-11-03 10:14:21,515 basehttp 154 "POST /paymentoperation/ HTTP/1.1" 200 37
+INFO 2019-11-03 10:16:01,412 basehttp 154 "POST /sales/ HTTP/1.1" 200 61
+INFO 2019-11-03 10:16:40,654 basehttp 154 "POST /proceeds/ HTTP/1.1" 200 49
+INFO 2019-11-03 10:16:44,598 basehttp 154 "POST /proceeds/ HTTP/1.1" 200 49
+WARNING 2019-11-03 10:27:20,335 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-11-03 10:27:20,335 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 403 81
+WARNING 2019-11-03 10:27:37,242 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-11-03 10:27:37,243 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 403 21
+INFO 2019-11-03 10:27:42,844 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 200 43
+WARNING 2019-11-03 10:32:17,179 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-11-03 10:32:17,179 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 403 24
+INFO 2019-11-03 10:32:21,650 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 200 43
+INFO 2019-11-03 10:48:13,967 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 200 43
+WARNING 2019-11-03 10:49:09,912 log 228 Forbidden: /expectedptoperation/
+WARNING 2019-11-03 10:49:09,912 basehttp 154 "POST /expectedptoperation/ HTTP/1.1" 403 78
+WARNING 2019-11-03 10:49:19,047 log 228 Forbidden: /expectedptoperation/
+WARNING 2019-11-03 10:49:19,048 basehttp 154 "POST /expectedptoperation/ HTTP/1.1" 403 78
+WARNING 2019-11-03 10:53:16,383 log 228 Forbidden: /invoice/
+WARNING 2019-11-03 10:53:16,383 basehttp 154 "POST /invoice/ HTTP/1.1" 403 21
+INFO 2019-11-03 10:53:23,953 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+INFO 2019-11-03 10:55:32,096 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 200 43
+WARNING 2019-11-03 10:56:30,153 log 228 Forbidden: /expectedptoperation/
+WARNING 2019-11-03 10:56:30,154 basehttp 154 "POST /expectedptoperation/ HTTP/1.1" 403 78
+WARNING 2019-11-03 10:56:50,449 log 228 Forbidden: /expectedptoperation/
+WARNING 2019-11-03 10:56:50,449 basehttp 154 "POST /expectedptoperation/ HTTP/1.1" 403 21
+WARNING 2019-11-03 10:57:13,811 log 228 Forbidden: /expectedptoperation/
+WARNING 2019-11-03 10:57:13,811 basehttp 154 "POST /expectedptoperation/ HTTP/1.1" 403 21
+INFO 2019-11-03 10:58:47,136 basehttp 154 "POST /expectedptoperation/ HTTP/1.1" 200 55
+INFO 2019-11-03 10:59:54,774 basehttp 154 "POST /expectedptoperation/ HTTP/1.1" 200 55
+INFO 2019-11-03 11:07:29,842 basehttp 154 "GET /sales HTTP/1.1" 301 0
+INFO 2019-11-03 11:07:29,865 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+WARNING 2019-11-03 11:07:29,914 log 228 Not Found: /favicon.ico
+WARNING 2019-11-03 11:07:29,915 basehttp 154 "GET /favicon.ico HTTP/1.1" 404 3280
+ERROR 2019-11-03 11:09:07,485 exception 77 Invalid HTTP_HOST header: '192.168.137.1:8000'. You may need to add '192.168.137.1' to ALLOWED_HOSTS.
+WARNING 2019-11-03 11:09:07,524 log 228 Bad Request: /sales/
+WARNING 2019-11-03 11:09:07,525 basehttp 154 "GET /sales/ HTTP/1.1" 400 66679
+ERROR 2019-11-03 11:09:07,706 exception 77 Invalid HTTP_HOST header: '192.168.137.1:8000'. You may need to add '192.168.137.1' to ALLOWED_HOSTS.
+WARNING 2019-11-03 11:09:07,742 log 228 Bad Request: /favicon.ico
+WARNING 2019-11-03 11:09:07,742 basehttp 154 "GET /favicon.ico HTTP/1.1" 400 66668
+INFO 2019-11-03 11:12:55,385 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+WARNING 2019-11-03 11:12:55,413 log 228 Not Found: /favicon.ico
+WARNING 2019-11-03 11:12:55,413 basehttp 154 "GET /favicon.ico HTTP/1.1" 404 3284
+WARNING 2019-11-03 11:13:36,096 log 228 Not Found: /
+WARNING 2019-11-03 11:13:36,096 basehttp 154 "GET / HTTP/1.1" 404 3234
+WARNING 2019-11-03 11:13:53,887 log 228 Not Found: //sales/
+WARNING 2019-11-03 11:13:53,888 basehttp 154 "GET //sales/ HTTP/1.1" 404 3273
+WARNING 2019-11-03 11:13:54,057 log 228 Not Found: /favicon.ico
+WARNING 2019-11-03 11:13:54,058 basehttp 154 "GET /favicon.ico HTTP/1.1" 404 3285
+INFO 2019-11-03 11:14:00,119 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+INFO 2019-11-03 11:15:08,274 basehttp 154 "GET /sales HTTP/1.1" 301 0
+INFO 2019-11-03 11:15:08,485 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+INFO 2019-11-03 11:15:34,578 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+WARNING 2019-11-03 11:15:34,750 log 228 Not Found: /favicon.ico
+WARNING 2019-11-03 11:15:34,751 basehttp 154 "GET /favicon.ico HTTP/1.1" 404 3285
+INFO 2019-11-03 11:15:43,992 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+WARNING 2019-11-03 11:15:44,662 log 228 Not Found: /favicon.ico
+WARNING 2019-11-03 11:15:44,663 basehttp 154 "GET /favicon.ico HTTP/1.1" 404 3285
+INFO 2019-11-03 11:15:46,578 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+WARNING 2019-11-03 11:15:46,910 log 228 Not Found: /favicon.ico
+WARNING 2019-11-03 11:15:46,911 basehttp 154 "GET /favicon.ico HTTP/1.1" 404 3285
+INFO 2019-11-03 11:15:52,647 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+WARNING 2019-11-03 11:15:58,776 log 228 Not Found: /favicon.ico
+WARNING 2019-11-03 11:15:58,776 basehttp 154 "GET /favicon.ico HTTP/1.1" 404 3285
+INFO 2019-11-03 11:16:00,367 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+WARNING 2019-11-03 11:16:03,144 log 228 Not Found: /favicon.ico
+WARNING 2019-11-03 11:16:03,144 basehttp 154 "GET /favicon.ico HTTP/1.1" 404 3285
+INFO 2019-11-03 11:16:04,835 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+WARNING 2019-11-03 11:16:05,110 log 228 Not Found: /favicon.ico
+WARNING 2019-11-03 11:16:05,111 basehttp 154 "GET /favicon.ico HTTP/1.1" 404 3285
+INFO 2019-11-03 11:18:35,084 basehttp 154 "GET /sales/ HTTP/1.0" 200 54
+WARNING 2019-11-03 11:18:38,541 log 228 Not Found: /
+WARNING 2019-11-03 11:18:38,542 basehttp 154 "GET / HTTP/1.0" 404 3234
+INFO 2019-11-03 11:19:31,881 basehttp 154 "GET /invoice/ HTTP/1.0" 200 10
+INFO 2019-11-03 11:20:32,044 basehttp 154 "GET /invoice HTTP/1.1" 301 0
+WARNING 2019-11-03 11:20:41,040 log 228 Not Found: /
+WARNING 2019-11-03 11:20:41,041 basehttp 154 "HEAD / HTTP/1.1" 404 3235
+WARNING 2019-11-03 11:21:39,260 log 228 Not Found: /
+WARNING 2019-11-03 11:21:39,260 basehttp 154 "HEAD / HTTP/1.1" 404 3235
+INFO 2019-11-03 11:29:33,529 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+WARNING 2019-11-03 11:29:33,903 log 228 Not Found: /favicon.ico
+WARNING 2019-11-03 11:29:33,903 basehttp 154 "GET /favicon.ico HTTP/1.1" 404 3285
+INFO 2019-11-03 11:29:41,481 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+INFO 2019-11-05 21:33:18,500 basehttp 154 "GET /predictpayment HTTP/1.1" 301 0
+INFO 2019-11-05 21:33:20,080 basehttp 154 "GET /predictpayment/ HTTP/1.1" 200 54
+WARNING 2019-11-05 21:33:20,108 log 228 Not Found: /favicon.ico
+WARNING 2019-11-05 21:33:20,109 basehttp 154 "GET /favicon.ico HTTP/1.1" 404 3284
+INFO 2019-11-05 21:47:09,730 basehttp 154 "GET /predictpayment/ HTTP/1.1" 200 54
+INFO 2019-11-05 23:00:01,830 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+WARNING 2019-11-05 23:00:01,930 log 228 Not Found: /favicon.ico
+WARNING 2019-11-05 23:00:01,930 basehttp 154 "GET /favicon.ico HTTP/1.1" 404 3280
+INFO 2019-11-08 09:33:38,919 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-08 09:33:49,455 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-08 09:34:47,820 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-08 09:35:01,386 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-08 09:35:27,500 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-08 09:37:33,632 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-08 09:39:12,188 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\setting\dev.py changed, reloading.
+INFO 2019-11-08 09:39:12,927 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-08 09:39:19,867 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\setting\dev.py changed, reloading.
+INFO 2019-11-08 09:39:20,619 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-08 09:39:21,033 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-08 09:40:28,193 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\setting\dev.py changed, reloading.
+INFO 2019-11-08 09:40:28,892 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-08 09:40:38,901 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-08 09:40:47,636 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-09 16:06:19,043 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-09 16:06:58,214 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-09 16:14:47,264 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\stockinvoice\urls.py changed, reloading.
+INFO 2019-11-09 16:14:47,923 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-09 16:19:18,966 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\stockinvoice\urls.py changed, reloading.
+INFO 2019-11-09 16:19:19,699 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-11 16:16:41,670 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-11 16:17:01,982 log 228 Not Found: /favicon.ico
+WARNING 2019-11-11 16:17:01,982 basehttp 154 "GET /favicon.ico HTTP/1.1" 404 77
+INFO 2019-11-11 16:17:09,641 basehttp 154 "GET /sales HTTP/1.1" 301 0
+INFO 2019-11-11 16:17:09,666 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+WARNING 2019-11-11 16:17:09,922 log 228 Not Found: /favicon.ico
+WARNING 2019-11-11 16:17:09,924 basehttp 154 "GET /favicon.ico HTTP/1.1" 404 77
+INFO 2019-11-11 16:17:14,643 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+INFO 2019-11-11 16:32:32,833 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py changed, reloading.
+INFO 2019-11-11 16:32:33,757 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-11 16:33:46,402 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py changed, reloading.
+INFO 2019-11-11 16:33:47,295 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-11 16:37:45,902 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-11 16:37:47,798 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 25, in get
+    return http.JsonResponse(json.dumps(context))
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\http\response.py", line 552, in __init__
+    'In order to allow non-dict objects to be serialized set the '
+TypeError: In order to allow non-dict objects to be serialized set the safe parameter to False.
+ERROR 2019-11-11 16:37:47,902 basehttp 154 "GET /sales/ HTTP/1.1" 500 27
+ERROR 2019-11-11 16:37:57,001 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 25, in get
+    return http.JsonResponse(json.dumps(context))
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\http\response.py", line 552, in __init__
+    'In order to allow non-dict objects to be serialized set the '
+TypeError: In order to allow non-dict objects to be serialized set the safe parameter to False.
+ERROR 2019-11-11 16:37:57,002 basehttp 154 "GET /sales/ HTTP/1.1" 500 27
+ERROR 2019-11-11 16:38:00,350 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 25, in get
+    return http.JsonResponse(json.dumps(context))
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\http\response.py", line 552, in __init__
+    'In order to allow non-dict objects to be serialized set the '
+TypeError: In order to allow non-dict objects to be serialized set the safe parameter to False.
+ERROR 2019-11-11 16:38:00,350 basehttp 154 "GET /sales/ HTTP/1.1" 500 27
+INFO 2019-11-11 16:38:21,714 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-11 16:38:25,235 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 25, in get
+    return http.JsonResponse(json.dumps(context))
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\http\response.py", line 552, in __init__
+    'In order to allow non-dict objects to be serialized set the '
+TypeError: In order to allow non-dict objects to be serialized set the safe parameter to False.
+ERROR 2019-11-11 16:38:25,238 basehttp 154 "GET /sales/ HTTP/1.1" 500 27
+ERROR 2019-11-11 16:38:47,178 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 25, in get
+    return http.JsonResponse(json.dumps(context))
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\http\response.py", line 552, in __init__
+    'In order to allow non-dict objects to be serialized set the '
+TypeError: In order to allow non-dict objects to be serialized set the safe parameter to False.
+ERROR 2019-11-11 16:38:47,179 basehttp 154 "GET /sales/ HTTP/1.1" 500 27
+WARNING 2019-11-11 16:38:47,252 log 228 Not Found: /favicon.ico
+WARNING 2019-11-11 16:38:47,253 basehttp 154 "GET /favicon.ico HTTP/1.1" 404 77
+INFO 2019-11-11 16:39:02,780 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-11 16:39:05,535 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 25, in get
+    return http.JsonResponse(json.dumps(context))
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\http\response.py", line 552, in __init__
+    'In order to allow non-dict objects to be serialized set the '
+TypeError: In order to allow non-dict objects to be serialized set the safe parameter to False.
+ERROR 2019-11-11 16:39:05,536 basehttp 154 "GET /sales/ HTTP/1.1" 500 27
+ERROR 2019-11-11 16:39:06,768 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 25, in get
+    return http.JsonResponse(json.dumps(context))
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\http\response.py", line 552, in __init__
+    'In order to allow non-dict objects to be serialized set the '
+TypeError: In order to allow non-dict objects to be serialized set the safe parameter to False.
+ERROR 2019-11-11 16:39:06,769 basehttp 154 "GET /sales/ HTTP/1.1" 500 27
+ERROR 2019-11-11 16:39:08,320 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py", line 25, in get
+    return http.JsonResponse(json.dumps(context))
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\http\response.py", line 552, in __init__
+    'In order to allow non-dict objects to be serialized set the '
+TypeError: In order to allow non-dict objects to be serialized set the safe parameter to False.
+ERROR 2019-11-11 16:39:08,320 basehttp 154 "GET /sales/ HTTP/1.1" 500 27
+INFO 2019-11-11 16:39:28,518 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-11 16:39:30,999 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+INFO 2019-11-12 14:40:17,795 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-12 14:40:34,826 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py", line 10, in inner
+    req_data = json.loads(request.body.decode())
+  File "e:\12446\appdata\Lib\json\__init__.py", line 354, in loads
+    return _default_decoder.decode(s)
+  File "e:\12446\appdata\Lib\json\decoder.py", line 339, in decode
+    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
+  File "e:\12446\appdata\Lib\json\decoder.py", line 357, in raw_decode
+    raise JSONDecodeError("Expecting value", s, err.value) from None
+json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
+ERROR 2019-11-12 14:40:34,959 basehttp 154 "GET /sales/ HTTP/1.1" 500 27
+ERROR 2019-11-12 14:40:34,991 log 228 Internal Server Error: /favicon.ico
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py", line 10, in inner
+    req_data = json.loads(request.body.decode())
+  File "e:\12446\appdata\Lib\json\__init__.py", line 354, in loads
+    return _default_decoder.decode(s)
+  File "e:\12446\appdata\Lib\json\decoder.py", line 339, in decode
+    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
+  File "e:\12446\appdata\Lib\json\decoder.py", line 357, in raw_decode
+    raise JSONDecodeError("Expecting value", s, err.value) from None
+json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
+ERROR 2019-11-12 14:40:34,992 basehttp 154 "GET /favicon.ico HTTP/1.1" 500 27
+INFO 2019-11-12 14:41:55,920 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-12 14:41:59,326 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py", line 10, in inner
+    req_data = json.loads(request.body.decode())
+  File "e:\12446\appdata\Lib\json\__init__.py", line 354, in loads
+    return _default_decoder.decode(s)
+  File "e:\12446\appdata\Lib\json\decoder.py", line 339, in decode
+    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
+  File "e:\12446\appdata\Lib\json\decoder.py", line 357, in raw_decode
+    raise JSONDecodeError("Expecting value", s, err.value) from None
+json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
+ERROR 2019-11-12 14:41:59,327 basehttp 154 "GET /sales/ HTTP/1.1" 500 73496
+ERROR 2019-11-12 14:41:59,575 log 228 Internal Server Error: /favicon.ico
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py", line 10, in inner
+    req_data = json.loads(request.body.decode())
+  File "e:\12446\appdata\Lib\json\__init__.py", line 354, in loads
+    return _default_decoder.decode(s)
+  File "e:\12446\appdata\Lib\json\decoder.py", line 339, in decode
+    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
+  File "e:\12446\appdata\Lib\json\decoder.py", line 357, in raw_decode
+    raise JSONDecodeError("Expecting value", s, err.value) from None
+json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
+ERROR 2019-11-12 14:41:59,577 basehttp 154 "GET /favicon.ico HTTP/1.1" 500 73597
+INFO 2019-11-12 14:44:10,525 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-12 14:44:14,891 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py", line 10, in inner
+    req_data = json.loads(request.body.decode())
+  File "e:\12446\appdata\Lib\json\__init__.py", line 354, in loads
+    return _default_decoder.decode(s)
+  File "e:\12446\appdata\Lib\json\decoder.py", line 339, in decode
+    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
+  File "e:\12446\appdata\Lib\json\decoder.py", line 357, in raw_decode
+    raise JSONDecodeError("Expecting value", s, err.value) from None
+json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
+ERROR 2019-11-12 14:44:14,892 basehttp 154 "GET /sales/ HTTP/1.1" 500 73537
+ERROR 2019-11-12 14:44:15,024 log 228 Internal Server Error: /favicon.ico
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py", line 10, in inner
+    req_data = json.loads(request.body.decode())
+  File "e:\12446\appdata\Lib\json\__init__.py", line 354, in loads
+    return _default_decoder.decode(s)
+  File "e:\12446\appdata\Lib\json\decoder.py", line 339, in decode
+    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
+  File "e:\12446\appdata\Lib\json\decoder.py", line 357, in raw_decode
+    raise JSONDecodeError("Expecting value", s, err.value) from None
+json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
+ERROR 2019-11-12 14:44:15,025 basehttp 154 "GET /favicon.ico HTTP/1.1" 500 73638
+INFO 2019-11-12 14:44:44,179 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 14:44:45,988 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+WARNING 2019-11-12 14:44:46,053 log 228 Not Found: /favicon.ico
+WARNING 2019-11-12 14:44:46,054 basehttp 154 "GET /favicon.ico HTTP/1.1" 404 3280
+INFO 2019-11-12 14:45:20,751 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py changed, reloading.
+INFO 2019-11-12 14:45:21,715 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 14:46:22,467 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 14:46:37,151 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+INFO 2019-11-12 14:47:12,111 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 14:47:14,473 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+INFO 2019-11-12 14:47:29,166 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 14:47:31,456 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+INFO 2019-11-12 14:47:51,244 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 14:47:53,102 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+INFO 2019-11-12 14:48:18,072 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 14:48:21,911 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+INFO 2019-11-12 14:48:41,055 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 14:48:43,306 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+INFO 2019-11-12 14:50:12,409 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py changed, reloading.
+INFO 2019-11-12 14:50:13,187 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-12 14:50:55,463 log 228 Forbidden: /sales/
+WARNING 2019-11-12 14:50:55,464 basehttp 154 "GET /sales/ HTTP/1.1" 403 27
+INFO 2019-11-12 14:52:22,141 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py changed, reloading.
+INFO 2019-11-12 14:52:23,594 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 14:52:51,587 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+INFO 2019-11-12 14:54:17,547 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py changed, reloading.
+INFO 2019-11-12 14:54:18,321 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 14:56:21,151 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py changed, reloading.
+INFO 2019-11-12 14:56:22,161 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 14:56:34,244 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-12 14:57:09,461 log 228 Internal Server Error: /invoice/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py", line 11, in inner
+    req_data = json.loads(request.body.decode())
+  File "e:\12446\appdata\Lib\json\__init__.py", line 354, in loads
+    return _default_decoder.decode(s)
+  File "e:\12446\appdata\Lib\json\decoder.py", line 339, in decode
+    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
+  File "e:\12446\appdata\Lib\json\decoder.py", line 357, in raw_decode
+    raise JSONDecodeError("Expecting value", s, err.value) from None
+json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
+ERROR 2019-11-12 14:57:09,463 basehttp 154 "POST /invoice/ HTTP/1.1" 500 88452
+INFO 2019-11-12 14:58:18,482 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-12 14:58:21,405 log 228 Internal Server Error: /invoice/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py", line 12, in inner
+    req_data = json.loads(request.body.decode())
+  File "e:\12446\appdata\Lib\json\__init__.py", line 354, in loads
+    return _default_decoder.decode(s)
+  File "e:\12446\appdata\Lib\json\decoder.py", line 339, in decode
+    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
+  File "e:\12446\appdata\Lib\json\decoder.py", line 357, in raw_decode
+    raise JSONDecodeError("Expecting value", s, err.value) from None
+json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
+ERROR 2019-11-12 14:58:21,408 basehttp 154 "POST /invoice/ HTTP/1.1" 500 88493
+INFO 2019-11-12 15:00:00,823 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-12 15:00:03,448 log 228 Internal Server Error: /invoice/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py", line 13, in inner
+    req_data = json.loads(request.body.decode())
+  File "e:\12446\appdata\Lib\json\__init__.py", line 354, in loads
+    return _default_decoder.decode(s)
+  File "e:\12446\appdata\Lib\json\decoder.py", line 339, in decode
+    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
+  File "e:\12446\appdata\Lib\json\decoder.py", line 357, in raw_decode
+    raise JSONDecodeError("Expecting value", s, err.value) from None
+json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
+ERROR 2019-11-12 15:00:03,449 basehttp 154 "POST /invoice/ HTTP/1.1" 500 88529
+INFO 2019-11-12 15:00:47,374 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+INFO 2019-11-12 15:00:56,262 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 15:00:57,943 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+ERROR 2019-11-12 15:01:50,029 log 228 Internal Server Error: /invoice/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\stockinvoice\views.py", line 69, in post
+    print(ZL_NO[:3])
+TypeError: 'NoneType' object is not subscriptable
+ERROR 2019-11-12 15:01:50,036 basehttp 154 "POST /invoice/ HTTP/1.1" 500 84293
+INFO 2019-11-12 15:01:58,863 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-12 15:02:02,319 log 228 Internal Server Error: /invoice/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\stockinvoice\views.py", line 69, in post
+    print(ZL_NO[:3])
+TypeError: 'NoneType' object is not subscriptable
+ERROR 2019-11-12 15:02:02,320 basehttp 154 "POST /invoice/ HTTP/1.1" 500 84293
+INFO 2019-11-12 15:02:57,081 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-12 15:03:01,095 log 228 Internal Server Error: /invoice/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\stockinvoice\views.py", line 69, in post
+    print(ZL_NO[:3])
+TypeError: 'NoneType' object is not subscriptable
+ERROR 2019-11-12 15:03:01,097 basehttp 154 "POST /invoice/ HTTP/1.1" 500 84293
+INFO 2019-11-12 15:03:57,379 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-12 15:04:00,651 log 228 Internal Server Error: /invoice/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py", line 14, in inner
+    user = req_data.get("user")  # 用户名
+AttributeError: 'str' object has no attribute 'get'
+ERROR 2019-11-12 15:04:00,655 basehttp 154 "POST /invoice/ HTTP/1.1" 500 58094
+INFO 2019-11-12 15:04:57,318 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-12 15:05:00,700 log 228 Internal Server Error: /sales/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py", line 14, in inner
+    user = req_data.get("user")  # 用户名
+AttributeError: 'str' object has no attribute 'get'
+ERROR 2019-11-12 15:05:00,701 basehttp 154 "GET /sales/ HTTP/1.1" 500 58071
+INFO 2019-11-12 15:05:14,607 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 15:05:16,907 basehttp 154 "GET /sales/ HTTP/1.1" 200 54
+ERROR 2019-11-12 15:05:58,700 log 228 Internal Server Error: /invoice/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\stockinvoice\views.py", line 69, in post
+    print(ZL_NO[:3])
+TypeError: 'NoneType' object is not subscriptable
+ERROR 2019-11-12 15:05:58,701 basehttp 154 "POST /invoice/ HTTP/1.1" 500 84293
+INFO 2019-11-12 15:06:40,324 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-12 15:06:43,978 log 228 Internal Server Error: /invoice/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\stockinvoice\views.py", line 71, in post
+    if ZL_NO[:3] != 'LPF' or len(ZL_NO) != 10:
+TypeError: 'NoneType' object is not subscriptable
+ERROR 2019-11-12 15:06:43,980 basehttp 154 "POST /invoice/ HTTP/1.1" 500 84325
+INFO 2019-11-12 15:06:56,069 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\stockinvoice\views.py changed, reloading.
+INFO 2019-11-12 15:06:57,864 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 15:08:48,355 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-12 15:09:09,420 log 228 Forbidden: /invoice/
+WARNING 2019-11-12 15:09:09,421 basehttp 154 "POST /invoice/ HTTP/1.1" 403 16
+INFO 2019-11-12 15:10:23,366 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py changed, reloading.
+INFO 2019-11-12 15:10:24,156 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 15:11:13,161 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-12 15:11:16,082 log 228 Forbidden: /invoice/
+WARNING 2019-11-12 15:11:16,083 basehttp 154 "POST /invoice/ HTTP/1.1" 403 27
+INFO 2019-11-12 15:12:53,101 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py changed, reloading.
+INFO 2019-11-12 15:12:53,904 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 15:13:17,786 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-12 15:13:26,023 log 228 Forbidden: /invoice/
+WARNING 2019-11-12 15:13:26,024 basehttp 154 "POST /invoice/ HTTP/1.1" 403 27
+INFO 2019-11-12 15:14:16,843 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-12 15:14:19,319 log 228 Forbidden: /invoice/
+WARNING 2019-11-12 15:14:19,320 basehttp 154 "POST /invoice/ HTTP/1.1" 403 27
+INFO 2019-11-12 15:15:41,239 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-12 15:15:44,018 log 228 Forbidden: /invoice/
+WARNING 2019-11-12 15:15:44,018 basehttp 154 "POST /invoice/ HTTP/1.1" 403 21
+WARNING 2019-11-12 15:15:52,636 log 228 Forbidden: /invoice/
+WARNING 2019-11-12 15:15:52,638 basehttp 154 "POST /invoice/ HTTP/1.1" 403 21
+WARNING 2019-11-12 15:16:08,616 log 228 Forbidden: /invoice/
+WARNING 2019-11-12 15:16:08,616 basehttp 154 "POST /invoice/ HTTP/1.1" 403 21
+WARNING 2019-11-12 15:16:21,275 log 228 Forbidden: /invoice/
+WARNING 2019-11-12 15:16:21,276 basehttp 154 "POST /invoice/ HTTP/1.1" 403 18
+INFO 2019-11-12 15:17:29,140 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 15:17:51,169 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+WARNING 2019-11-12 15:18:49,024 log 228 Forbidden: /invoice/
+WARNING 2019-11-12 15:18:49,025 basehttp 154 "DELETE /invoice/ HTTP/1.1" 403 21
+WARNING 2019-11-12 15:19:43,121 log 228 Forbidden: /invoice/
+WARNING 2019-11-12 15:19:43,121 basehttp 154 "DELETE /invoice/ HTTP/1.1" 403 21
+INFO 2019-11-12 15:20:26,760 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-12 15:20:29,834 log 228 Forbidden: /invoice/
+WARNING 2019-11-12 15:20:29,835 basehttp 154 "DELETE /invoice/ HTTP/1.1" 403 15
+WARNING 2019-11-12 15:20:49,384 log 228 Forbidden: /invoice/
+WARNING 2019-11-12 15:20:49,384 basehttp 154 "DELETE /invoice/ HTTP/1.1" 403 21
+INFO 2019-11-12 15:21:19,639 basehttp 154 "DELETE /invoice/ HTTP/1.1" 200 27
+INFO 2019-11-12 15:22:23,031 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\middleware.py changed, reloading.
+INFO 2019-11-12 15:22:24,106 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 15:37:34,924 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-12 15:38:19,360 log 228 Forbidden (CSRF cookie not set.): /invoice/
+WARNING 2019-11-12 15:38:19,361 basehttp 154 "POST /invoice/ HTTP/1.1" 403 2868
+INFO 2019-11-12 15:38:59,231 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 15:39:03,593 basehttp 154 "POST /invoice/ HTTP/1.1" 200 25
+INFO 2019-11-12 15:39:12,325 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-12 15:39:15,126 log 228 Forbidden (CSRF cookie not set.): /invoice/
+WARNING 2019-11-12 15:39:15,128 basehttp 154 "POST /invoice/ HTTP/1.1" 403 2868
+WARNING 2019-11-12 15:40:51,787 log 228 Forbidden: /invoice/
+WARNING 2019-11-12 15:40:51,787 basehttp 154 "PUT /invoice/ HTTP/1.1" 403 18
+WARNING 2019-11-12 15:41:12,896 log 228 Forbidden (CSRF cookie not set.): /invoice/
+WARNING 2019-11-12 15:41:12,896 basehttp 154 "PUT /invoice/ HTTP/1.1" 403 2868
+WARNING 2019-11-12 15:44:11,969 log 228 Forbidden (CSRF cookie not set.): /invoice/
+WARNING 2019-11-12 15:44:11,969 basehttp 154 "PUT /invoice/ HTTP/1.1" 403 2868
+WARNING 2019-11-12 15:50:04,312 log 228 Forbidden (CSRF cookie not set.): /invoice/
+WARNING 2019-11-12 15:50:04,313 basehttp 154 "PUT /invoice/ HTTP/1.1" 403 2868
+INFO 2019-11-12 15:50:17,119 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-12 15:53:05,171 log 228 Forbidden (CSRF cookie not set.): /invoice/
+WARNING 2019-11-12 15:53:05,172 basehttp 154 "PUT /invoice/ HTTP/1.1" 403 2868
+WARNING 2019-11-12 15:53:44,032 log 228 Forbidden (CSRF cookie not set.): /invoice/
+WARNING 2019-11-12 15:53:44,033 basehttp 154 "PUT /invoice/ HTTP/1.1" 403 2868
+INFO 2019-11-12 15:54:05,117 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-12 15:54:30,324 log 228 Forbidden (CSRF cookie not set.): /invoice/
+WARNING 2019-11-12 15:54:30,325 basehttp 154 "PUT /invoice/ HTTP/1.1" 403 2868
+INFO 2019-11-12 16:19:49,910 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 16:20:27,691 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-12 16:22:12,626 log 228 Forbidden (CSRF cookie not set.): /invoice/
+WARNING 2019-11-12 16:22:12,627 basehttp 154 "POST /invoice/ HTTP/1.1" 403 2868
+INFO 2019-11-12 16:22:39,263 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 16:23:05,093 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-12 16:23:21,755 log 228 Forbidden: /invoice/
+WARNING 2019-11-12 16:23:21,755 basehttp 154 "POST /invoice/ HTTP/1.1" 403 21
+INFO 2019-11-12 16:24:40,820 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 200 43
+INFO 2019-11-12 16:44:35,511 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 200 43
+ERROR 2019-11-12 16:44:51,952 log 228 Internal Server Error: /expectedpoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\sql_server\pyodbc\base.py", line 536, in execute
+    return self.cursor.execute(sql, params)
+pyodbc.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]列名 'CHK_MAN' 无效。 (207) (SQLExecDirectW); [42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]列名 'CLS_DATE' 无效。 (207); [42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]无法预定义语句。 (8180)")
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 395, in post
+    row_usr = usr_data(USR, USR_NAME, datetime.datetime.strptime(RP_DD, '%Y-%m-%d'))
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\usr_data.py", line 13, in usr_data
+    cursor.execute("INSERT INTO SALM(SAL_NO,[NAME],USR,CHK_MAN,CLS_DATE,SYS_DATE)VALUES (%s,%s,'ADMIN','ADMIN',%s,%s)", [USR, USR_NAME,DATE,DATE])
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 99, in execute
+    return super().execute(sql, params)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 67, in execute
+    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 76, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\utils.py", line 89, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\sql_server\pyodbc\base.py", line 536, in execute
+    return self.cursor.execute(sql, params)
+django.db.utils.ProgrammingError: ('42S22', "[42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]列名 'CHK_MAN' 无效。 (207) (SQLExecDirectW); [42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]列名 'CLS_DATE' 无效。 (207); [42S22] [Microsoft][SQL Server Native Client 10.0][SQL Server]无法预定义语句。 (8180)")
+ERROR 2019-11-12 16:44:51,956 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 500 133940
+INFO 2019-11-12 16:48:07,723 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\usr_data.py changed, reloading.
+INFO 2019-11-12 16:48:08,489 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 16:49:09,677 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 16:49:14,521 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 200 43
+INFO 2019-11-12 16:51:02,232 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 17:01:00,950 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py changed, reloading.
+INFO 2019-11-12 17:01:01,942 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 17:05:43,200 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py changed, reloading.
+INFO 2019-11-12 17:05:44,417 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 17:06:24,227 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py changed, reloading.
+INFO 2019-11-12 17:06:25,264 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 17:09:35,337 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py changed, reloading.
+INFO 2019-11-12 17:09:36,256 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 17:10:12,277 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py changed, reloading.
+INFO 2019-11-12 17:10:13,064 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 17:11:18,793 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-12 17:13:01,256 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-12 17:13:04,170 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-11-12 17:13:04,171 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 403 24
+WARNING 2019-11-12 17:13:11,723 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-11-12 17:13:11,725 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 403 21
+INFO 2019-11-13 09:19:57,023 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-13 09:21:04,056 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-11-13 09:21:04,056 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 403 30
+ERROR 2019-11-13 09:21:16,725 log 228 Internal Server Error: /expectedpoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 82, in _execute
+    return self.cursor.execute(sql)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\sql_server\pyodbc\base.py", line 536, in execute
+    return self.cursor.execute(sql, params)
+pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]'=' 附近有语法错误。 (102) (SQLExecDirectW)")
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 388, in post
+    sum_CACC_NO=et_CACC_NO(CACC_NO)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\et_CACC_NO.py", line 21, in et_CACC_NO
+    SUM_CACC_NO = cursor.execute(sql).fetchall()[0][0]
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 99, in execute
+    return super().execute(sql, params)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 67, in execute
+    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 76, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\utils.py", line 89, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 82, in _execute
+    return self.cursor.execute(sql)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\sql_server\pyodbc\base.py", line 536, in execute
+    return self.cursor.execute(sql, params)
+django.db.utils.ProgrammingError: ('42000', "[42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]'=' 附近有语法错误。 (102) (SQLExecDirectW)")
+ERROR 2019-11-13 09:21:16,728 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 500 129920
+INFO 2019-11-13 09:22:20,447 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-13 09:22:24,316 log 228 Internal Server Error: /expectedpoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 82, in _execute
+    return self.cursor.execute(sql)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\sql_server\pyodbc\base.py", line 536, in execute
+    return self.cursor.execute(sql, params)
+pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]'=' 附近有语法错误。 (102) (SQLExecDirectW)")
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 388, in post
+    sum_CACC_NO=et_CACC_NO(CACC_NO)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\et_CACC_NO.py", line 22, in et_CACC_NO
+    SUM_CACC_NO = cursor.execute(sql).fetchall()[0][0]
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 99, in execute
+    return super().execute(sql, params)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 67, in execute
+    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 76, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\utils.py", line 89, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 82, in _execute
+    return self.cursor.execute(sql)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\sql_server\pyodbc\base.py", line 536, in execute
+    return self.cursor.execute(sql, params)
+django.db.utils.ProgrammingError: ('42000', "[42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]'=' 附近有语法错误。 (102) (SQLExecDirectW)")
+ERROR 2019-11-13 09:22:24,319 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 500 129926
+WARNING 2019-11-13 09:22:54,159 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-11-13 09:22:54,160 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 403 30
+INFO 2019-11-13 09:23:11,800 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\et_CACC_NO.py changed, reloading.
+INFO 2019-11-13 09:23:12,555 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-13 09:23:18,851 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-13 09:23:21,004 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-11-13 09:23:21,004 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 403 30
+ERROR 2019-11-13 09:23:29,487 log 228 Internal Server Error: /expectedpoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 82, in _execute
+    return self.cursor.execute(sql)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\sql_server\pyodbc\base.py", line 536, in execute
+    return self.cursor.execute(sql, params)
+pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]'=' 附近有语法错误。 (102) (SQLExecDirectW)")
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 388, in post
+    sum_CACC_NO=et_CACC_NO(CACC_NO)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\et_CACC_NO.py", line 22, in et_CACC_NO
+    SUM_CACC_NO = cursor.execute(sql).fetchall()[0][0]
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 99, in execute
+    return super().execute(sql, params)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 67, in execute
+    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 76, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
+    return self.cursor.execute(sql, params)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\utils.py", line 89, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\db\backends\utils.py", line 82, in _execute
+    return self.cursor.execute(sql)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\sql_server\pyodbc\base.py", line 536, in execute
+    return self.cursor.execute(sql, params)
+django.db.utils.ProgrammingError: ('42000', "[42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]'=' 附近有语法错误。 (102) (SQLExecDirectW)")
+ERROR 2019-11-13 09:23:29,490 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 500 129912
+INFO 2019-11-13 09:23:58,046 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-13 09:24:00,932 log 228 Internal Server Error: /expectedpoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 389, in post
+    if sum_CACC_NO <=0:
+TypeError: '<=' not supported between instances of 'HttpResponseForbidden' and 'int'
+ERROR 2019-11-13 09:24:00,933 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 500 85820
+INFO 2019-11-13 09:26:39,132 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-13 09:26:56,637 log 228 Internal Server Error: /expectedpoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 406, in post
+    Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+IndexError: list index out of range
+ERROR 2019-11-13 09:26:56,641 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 500 86319
+INFO 2019-11-13 09:28:39,553 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-13 09:28:42,917 log 228 Internal Server Error: /expectedpoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 406, in post
+    Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+IndexError: list index out of range
+ERROR 2019-11-13 09:28:42,918 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 500 86514
+INFO 2019-11-13 09:29:10,905 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-13 09:29:15,364 log 228 Internal Server Error: /expectedpoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 406, in post
+    Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+IndexError: list index out of range
+ERROR 2019-11-13 09:29:15,365 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 500 86514
+INFO 2019-11-13 09:32:18,835 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-13 09:32:22,715 log 228 Internal Server Error: /expectedpoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 406, in post
+    Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+IndexError: list index out of range
+ERROR 2019-11-13 09:32:22,717 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 500 86514
+INFO 2019-11-13 09:34:12,207 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-13 09:34:15,270 log 228 Internal Server Error: /expectedpoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 408, in post
+    Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+IndexError: list index out of range
+ERROR 2019-11-13 09:34:15,272 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 500 86514
+INFO 2019-11-13 09:34:43,791 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-13 09:34:48,049 log 228 Internal Server Error: /expectedpoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 409, in post
+    Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+IndexError: list index out of range
+ERROR 2019-11-13 09:34:48,050 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 500 86514
+INFO 2019-11-13 09:35:15,342 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-13 09:35:18,687 log 228 Internal Server Error: /expectedpoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 409, in post
+    Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+IndexError: list index out of range
+ERROR 2019-11-13 09:35:18,689 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 500 86514
+INFO 2019-11-13 09:35:41,580 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-13 09:35:45,021 log 228 Internal Server Error: /expectedpoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 409, in post
+    Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+IndexError: list index out of range
+ERROR 2019-11-13 09:35:45,024 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 500 86514
+INFO 2019-11-13 09:36:21,091 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-13 09:36:25,861 log 228 Internal Server Error: /expectedpoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 409, in post
+    Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+IndexError: list index out of range
+ERROR 2019-11-13 09:36:25,862 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 500 86514
+INFO 2019-11-13 09:37:08,687 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-13 09:37:12,871 log 228 Internal Server Error: /expectedpoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 409, in post
+    Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+IndexError: list index out of range
+ERROR 2019-11-13 09:37:12,872 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 500 86462
+INFO 2019-11-13 09:37:32,747 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-13 09:37:36,237 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-11-13 09:37:36,237 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 403 24
+INFO 2019-11-13 09:38:12,641 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py changed, reloading.
+INFO 2019-11-13 09:38:13,462 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-13 09:38:22,592 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-11-13 09:38:22,592 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 403 24
+INFO 2019-11-13 09:39:04,964 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py changed, reloading.
+INFO 2019-11-13 09:39:05,745 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-13 09:39:17,523 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\et_CACC_NO.py changed, reloading.
+INFO 2019-11-13 09:39:18,229 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-13 09:39:25,431 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py changed, reloading.
+INFO 2019-11-13 09:39:26,303 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-13 09:39:26,970 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-13 09:39:31,533 autoreload 597 Watching for file changes with StatReloader
+ERROR 2019-11-13 09:39:34,146 log 228 Internal Server Error: /expectedpoperation/
+Traceback (most recent call last):
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
+    response = get_response(request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
+    response = self.process_exception_by_middleware(e, request)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
+    response = wrapped_callback(request, *callback_args, **callback_kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 71, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "C:\Users\12446\Envs\ceshi\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
+    return handler(request, *args, **kwargs)
+  File "e:\12446\appdata\Lib\contextlib.py", line 52, in inner
+    return func(*args, **kwds)
+  File "E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py", line 408, in post
+    Acc_No_km = cursor.execute("""SELECT ISNULL(Acc_No,'') FROM BACC WHERE BACC_NO=%s""", [CACC_NO]).fetchall()[0][0]
+IndexError: list index out of range
+ERROR 2019-11-13 09:39:34,149 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 500 86520
+INFO 2019-11-13 09:40:22,867 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\PaymentOperation\views.py changed, reloading.
+INFO 2019-11-13 09:40:23,643 autoreload 597 Watching for file changes with StatReloader
+INFO 2019-11-13 09:40:37,698 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\utils\et_CACC_NO.py changed, reloading.
+INFO 2019-11-13 09:40:38,412 autoreload 597 Watching for file changes with StatReloader
+WARNING 2019-11-13 09:40:43,633 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-11-13 09:40:43,633 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 403 57
+WARNING 2019-11-13 09:40:50,145 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-11-13 09:40:50,146 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 403 57
+WARNING 2019-11-13 09:40:53,502 log 228 Forbidden: /expectedpoperation/
+WARNING 2019-11-13 09:40:53,502 basehttp 154 "POST /expectedpoperation/ HTTP/1.1" 403 57
+INFO 2019-11-13 09:48:22,677 autoreload 217 E:\12446\PycharmProjects\wangli\wanjia\awj\awj\apps\salesinvoice\views.py changed, reloading.
+INFO 2019-11-13 09:48:23,417 autoreload 597 Watching for file changes with StatReloader
+>>>>>>> 9ef74b8a8327dc14dd5b9d31dabf1eaf7e92f2ab